From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sricharan R Subject: Re: [RFC PATCH 1/4] DRIVERS: IRQCHIP: Add crossbar irqchip driver Date: Wed, 18 Sep 2013 20:55:21 +0530 Message-ID: <5239C5E1.4060807@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> Mime-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <5239B010.8080605@ti.com> Sender: linux-doc-owner@vger.kernel.org To: Linus Walleij Cc: Thomas Gleixner , Santosh Shilimkar , LKML , "devicetree@vger.kernel.org" , "linux-doc@vger.kernel.org" , LAK , Linux-OMAP , Russell King , Tony Lindgren , Rajendra Nayak List-Id: linux-omap@vger.kernel.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 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