From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755476AbcGEQih (ORCPT ); Tue, 5 Jul 2016 12:38:37 -0400 Received: from smtpoutz26.laposte.net ([194.117.213.101]:36667 "EHLO smtp.laposte.net" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752862AbcGEQif (ORCPT ); Tue, 5 Jul 2016 12:38:35 -0400 Subject: Re: [RFC PATCH v1] irqchip: add support for SMP irq router To: Jason Cooper References: <577542D1.4070307@laposte.net> <577A5260.3070001@free.fr> <577BA854.6090503@laposte.net> <20160705144151.GE3348@io.lakedaemon.net> <577BCFD2.8060203@laposte.net> <20160705155306.GG3348@io.lakedaemon.net> Cc: Mason , LKML , Thomas Gleixner , Marc Zyngier From: Sebastian Frias Message-ID: <577BE288.70200@laposte.net> Date: Tue, 5 Jul 2016 18:38:32 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-Version: 1.0 In-Reply-To: <20160705155306.GG3348@io.lakedaemon.net> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-VR-SrcIP: 78.31.43.6 X-VR-FullState: 0 X-VR-Score: -100 X-VR-Cause-1: gggruggvucftvghtrhhoucdtuddrfeeltddrvdeggddutddvucetufdoteggodetrfdotffvucfrrhho X-VR-Cause-2: fhhilhgvmecunfetrffquffvgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhht X-VR-Cause-3: shculddquddttddmnecujfgurhepuffvfhfhkffffgggjggtgfesthejrgdttdefheenucfhrhhomhep X-VR-Cause-4: ufgvsggrshhtihgrnhcuhfhrihgrshcuoehsfhekgeeslhgrphhoshhtvgdrnhgvtheqnecuffhomhgr X-VR-Cause-5: ihhnpehmrghrtgdrihhnfhhonecukfhppeejkedrfedurdegfedrieenucfrrghrrghmpehmohguvgep X-VR-Cause-6: shhmthhpohhuthdphhgvlhhopegludejvddrvdejrddtrddvudegngdpihhnvghtpeejkedrfedurdeg X-VR-Cause-7: fedriedpmhgrihhlfhhrohhmpehsfhekgeeslhgrphhoshhtvgdrnhgvthdprhgtphhtthhopehjrghs X-VR-Cause-8: ohhnsehlrghkvggurggvmhhonhdrnhgvth X-VR-AvState: No X-VR-State: 0 X-VR-State: 0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Jason, On 07/05/2016 05:53 PM, Jason Cooper wrote: >> >> Thanks for your comments. >> So, aside from some naming issues, do you think the driver is ok? > > Well, it's going to be few days before I can really dig in to this. > Until then, what I can say I see is that it looks like you're using > devicetree to tell Linux how to lay out the irq domains. That's not > right :( Ok, so that replies my questions 1 and 2, thanks. > > The devicetree should *only* describe the hardware. Would *BSD be able > to use the description in the dtb effectively? > > iiuc, I think irq-crossbar.c may be a similar enough in task to give you > an idea or two. I already did something like that, you can see it here: https://marc.info/?l=linux-kernel&m=146592235919308&w=2 the problem with that code is that it cannot handle more than 24 IRQs (the number of outputs of the router), because they are not being shared. Maybe I need a sort of hybrid approach by reintroducing part of "irq-crossbar.c" code to replace the irq domain layout that is currently being done using DT properties ? However, I have not seen any examples of how to describe, using the DT, an association between a device HW irq, and the GIC hwirq where it goes to, nor how to express in the DT that multiple devices should share a given GIC hwirq. Basically, when a device requests the IRQ specified in its DT, I need: - to know which GIC hwirq line should I route it to (or the GIC to tell me which one it expects) - two devices should be able to request to share the same GIC hwirq If you take a look at the DT for drivers/irqchip/irq-tango.c (arch/arm/boot/dts/tango4-common.dtsi) you will see that 3 domains are created using DT nodes. The difference being that in the irq-tango.c case the routing is fixed w.r.t the GIC. Best regards, Sebastian