diff options
Diffstat (limited to 'target/linux/mvebu/patches-3.10/0188-of-irq-Rework-of_irq_count.patch')
-rw-r--r-- | target/linux/mvebu/patches-3.10/0188-of-irq-Rework-of_irq_count.patch | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/target/linux/mvebu/patches-3.10/0188-of-irq-Rework-of_irq_count.patch b/target/linux/mvebu/patches-3.10/0188-of-irq-Rework-of_irq_count.patch new file mode 100644 index 0000000000..39fc79488b --- /dev/null +++ b/target/linux/mvebu/patches-3.10/0188-of-irq-Rework-of_irq_count.patch @@ -0,0 +1,36 @@ +From 3665853921092bb68aa0929efb3a94ecdfc96782 Mon Sep 17 00:00:00 2001 +From: Thierry Reding <thierry.reding@gmail.com> +Date: Thu, 19 Dec 2013 09:30:59 -0300 +Subject: [PATCH 188/203] of/irq: Rework of_irq_count() + +The of_irq_to_resource() helper that is used to implement of_irq_count() +tries to resolve interrupts and in fact creates a mapping for resolved +interrupts. That's pretty heavy lifting for something that claims to +just return the number of interrupts requested by a given device node. + +Instead, use the more lightweight of_irq_map_one(), which, despite the +name, doesn't create an actual mapping. Perhaps a better name would be +of_irq_translate_one(). + +Signed-off-by: Thierry Reding <treding@nvidia.com> +Acked-by: Rob Herring <rob.herring@calxeda.com> +[grant.likely: fixup s/of_irq_map_one/of_irq_parse_one/] +Signed-off-by: Grant Likely <grant.likely@linaro.org> +--- + drivers/of/irq.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/drivers/of/irq.c ++++ b/drivers/of/irq.c +@@ -379,9 +379,10 @@ EXPORT_SYMBOL_GPL(of_irq_to_resource); + */ + int of_irq_count(struct device_node *dev) + { ++ struct of_phandle_args irq; + int nr = 0; + +- while (of_irq_to_resource(dev, nr, NULL)) ++ while (of_irq_parse_one(dev, nr, &irq) == 0) + nr++; + + return nr; |