On Wednesday 18 September 2013 07:22 PM, Sricharan R wrote: > Hi Thomas, > > On Tuesday 17 September 2013 05:56 PM, Linus Walleij wrote: >> On Fri, Sep 13, 2013 at 4:24 PM, Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote: >> >>> So why can't you make use of irq domains and have the whole routing >>> business implemented sanely? >>> >>> What's needed is in gic_init_bases(): >>> irq >>> if (of_property_read(node, "routable_irqs", &nr_routable_irqs) { >>> irq_domain_add_legacy(nr_gic_irqs); >>> } else { >>> irq_domain_add_legacy(nr_per_cpu_irqs); >>> irq_domain_add_linear(nr_routable_irqs); >>> } >>> >>> Now that separate domain has an xlate function which grabs a free GIC >>> irq from a bitmap and returns the hardware irq number in the gic >>> space. The map/unmap callbacks take care of setting up / tearing down >>> the route in the crossbar. >> This is obviously the right approach, it's exactly what .map should do >> the only special thing here being that we have hardware to perform >> the mapping ... bah why didn't I realize this :-( >> >> Yours, >> Linus Walleij > Thanks for the suggestion. > > So as i understand this, this implies using the GIC domain itself and > add the support for dynamically routable irqs (like crossbar) with in the > GIC driver itself right ? Please ignore this. So the question was more of how to implement the call outs in the case of routable irqs from map/ unmap callbacks. I will look more here and come back. Regards, Sricharan -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html