From 09d8f5f70a4ed27b5d66c8cb03c218f86b4665e8 Mon Sep 17 00:00:00 2001 From: Rishabh Bhatnagar Date: Thu, 28 Feb 2019 15:40:22 -0800 Subject: [PATCH] drivers: irq: Add debug information for irq type warnings Add device node information that adds interrupts without specifying IRQ type. Change-Id: Ib475043af11bfb0dfc266a1b5c2f538d875d06d4 Signed-off-by: Rishabh Bhatnagar Signed-off-by: Elliot Berman --- drivers/of/irq.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/of/irq.c b/drivers/of/irq.c index 7f84bb4903ca..0f79778d90a6 100644 --- a/drivers/of/irq.c +++ b/drivers/of/irq.c @@ -349,6 +349,8 @@ EXPORT_SYMBOL_GPL(of_irq_parse_one); int of_irq_to_resource(struct device_node *dev, int index, struct resource *r) { int irq = of_irq_get(dev, index); + u32 trigger_type; + struct of_phandle_args oirq; if (irq < 0) return irq; @@ -366,8 +368,17 @@ int of_irq_to_resource(struct device_node *dev, int index, struct resource *r) of_property_read_string_index(dev, "interrupt-names", index, &name); + trigger_type = irqd_get_trigger_type(irq_get_irq_data(irq)); + + of_irq_parse_one(dev, index, &oirq); + + if (!trigger_type && + of_device_is_compatible(oirq.np, "arm,gic-v3")) + pr_err("IRQ TYPE should not be NONE for %s\n", + dev->full_name); + r->start = r->end = irq; - r->flags = IORESOURCE_IRQ | irqd_get_trigger_type(irq_get_irq_data(irq)); + r->flags = IORESOURCE_IRQ | trigger_type; r->name = name ? name : of_node_full_name(dev); }