[PATCH v3 3/7] irqchip: gic: Support hierarchy irq domain.
From: arnd@arndb.de (Arnd Bergmann)
Date: 2014-10-13 19:51:48
Also in:
linux-devicetree, lkml
On Monday 13 October 2014 13:10:32 Marc Zyngier wrote:
On 13/10/14 11:43, Joe.C wrote:quoted
On Thu, 2014-10-09 at 17:59 +0100, Marc Zyngier wrote:quoted
On 09/10/14 15:29, Joe.C wrotequoted
@@ -952,7 +988,11 @@ void __init gic_init_bases(unsigned int gic_nr, int irq_start, gic_irqs -= hwirq_base; /* calculate # of irqs to allocate */ - if (of_property_read_u32(node, "arm,routable-irqs", + if (IS_ENABLED(CONFIG_IRQ_DOMAIN_HIERARCHY) && + of_find_property(node, "arm,irq-domain-hierarchy", NULL)) + gic->domain = irq_domain_add_linear(node, gic_irqs, + &gic_irq_domain_hierarchy_ops, gic);I really think that looking for a property is the wrong thing to do. If "node" is non-NULL, then we're pretty sure that we're initializing from DT, and that a pure linear domain should be the right thing, leaving the legacy stuff for the few non-DT platforms that are still around. Thanks, M.The only reason I introduce "arm,irq-domain-hierarchy" property is trying to keep original behavior when hierarchy irq domain is not used. Without this, when a board init GIC with DT, all driver will have to use devicetree. I'm not sure we want to break things like this.I don't think we want to support a "middle of the road" setup, where the GIC is probed by DT, but some devices have hardcoded interrupts.
Agreed. We should work on making GIC DT-only by converting the few remaining users instead, and certainly should not add any new board files that might use the domain hierarchy code. Arnd