From mboxrd@z Thu Jan 1 00:00:00 1970 From: r.sricharan@ti.com (Sricharan R) Date: Wed, 18 Sep 2013 20:55:21 +0530 Subject: [RFC PATCH 1/4] DRIVERS: IRQCHIP: Add crossbar irqchip driver In-Reply-To: <5239B010.8080605@ti.com> References: <1379000351-15672-1-git-send-email-r.sricharan@ti.com> <1379000351-15672-2-git-send-email-r.sricharan@ti.com> <523228B5.5070507@ti.com> <5232457A.8080709@ti.com> <52326D6B.2010003@ti.com> <5239B010.8080605@ti.com> Message-ID: <5239C5E1.4060807@ti.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org 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 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