On Wed, 18 Sep 2013, Sricharan R wrote: > 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. If you look closely at what I suggested, you'll notice that I added a separate domain in the routed case. Go figure ... Thanks, tglx -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html