[RFC] [PATCH 2/3] of: add of_irq_count: Count the number of IRQs a node present

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Wed May 29 01:08:48 EST 2013


Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
Cc: Grant Likely <grant.likely at secretlab.ca>
Cc: Rob Herring <rob.herring at calxeda.com>
Cc: Arnd Bergmann <arnd at arndb.de>
Cc: Linus Walleij <linus.walleij at linaro.org>
Cc: Benjamin Herrenschmidt <benh at kernel.crashing.org>
Cc: Ralf Baechle <ralf at linux-mips.org>
Cc: Nicolas Ferre <nicolas.ferre at atmel.com>
---
 drivers/of/irq.c       |   15 +++++++++++++++
 include/linux/of_irq.h |    1 +
 2 files changed, 16 insertions(+)

diff --git a/drivers/of/irq.c b/drivers/of/irq.c
index d1c5825..4426223 100644
--- a/drivers/of/irq.c
+++ b/drivers/of/irq.c
@@ -362,6 +362,21 @@ int of_irq_to_resource(struct device_node *dev, int index, struct resource *r)
 EXPORT_SYMBOL_GPL(of_irq_to_resource);
 
 /**
+ * of_irq_count - Count the number of IRQs a node uses
+ * @dev: pointer to device tree node
+ */
+int of_irq_count(struct device_node *dev)
+{
+	struct of_irq oirq;
+	int nr = 0;
+
+	while (!of_irq_map_one(dev, nr, &oirq))
+		nr++;
+
+	return nr;
+}
+
+/**
  * of_irq_valid_count - Count the number of mapped IRQs a node uses
  * @dev: pointer to device tree node
  */
diff --git a/include/linux/of_irq.h b/include/linux/of_irq.h
index 88bb58c..86b78ef 100644
--- a/include/linux/of_irq.h
+++ b/include/linux/of_irq.h
@@ -68,6 +68,7 @@ extern unsigned int irq_create_of_mapping(struct device_node *controller,
 					  unsigned int intsize);
 extern int of_irq_to_resource(struct device_node *dev, int index,
 			      struct resource *r);
+extern int of_irq_count(struct device_node *dev);
 extern int of_irq_valid_count(struct device_node *dev);
 extern int of_irq_to_resource_table(struct device_node *dev,
 		struct resource *res, int nr_irqs);
-- 
1.7.10.4



More information about the devicetree-discuss mailing list