From: Santosh Shilimkar <santosh.shilimkar@ti.com>
To: Sricharan R <r.sricharan@ti.com>
Cc: Linus Walleij <linus.walleij@linaro.org>,
Tony Lindgren <tony@atomide.com>, Nishanth Menon <nm@ti.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"devicetree-discuss@lists.ozlabs.org"
<devicetree-discuss@lists.ozlabs.org>,
"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
Linux-OMAP <linux-omap@vger.kernel.org>,
Russell King - ARM Linux <linux@arm.linux.org.uk>,
Rajendra Nayak <rnayak@ti.com>, Felipe Balbi <balbi@ti.com>,
Thomas Gleixner <tglx@linutronix.de>,
Grant Likely <grant.likely@secretlab.ca>
Subject: Re: [PATCH 1/3] misc: Add crossbar driver
Date: Thu, 22 Aug 2013 09:45:49 -0400 [thread overview]
Message-ID: <5216160D.5000308@ti.com> (raw)
In-Reply-To: <5215F6F6.9060703@ti.com>
On Thursday 22 August 2013 07:33 AM, Sricharan R wrote:
> Hi Linus,
>
> On Thursday 22 August 2013 02:40 AM, Linus Walleij wrote:
>> On Thu, Aug 15, 2013 at 11:14 PM, Santosh Shilimkar
>> <santosh.shilimkar@ti.com> wrote:
>>> On Thursday 15 August 2013 04:51 PM, Linus Walleij wrote:
>> (...)
>>>> Sorry I don't understand what thread that is... can you point me there?
>>>> My previous statement on this issue what this:
>>>> http://marc.info/?l=linux-kernel&m=137442541628641&w=2
>> (...)
>>>>> I don't see how you can make this happen with an irqchip
>>>>> infrastructure.
>>>> I think my post above describes this.
>>>>
>>> Sorry for being dumb but I don't think cascaded irqchip examples
>>> like GPIO and cross-bars are same. If you take an example of
>>> GPIO irqchip, it always have a physical connection even if it
>>> is 1 IRQ line for (32 logical/sparse IRQs). That goes with
>>> other MFD examples too.
>>>
>>> So may be I am still missing something in your proposal.
>> Why does it matter if it is a GPIO or MFD or whatever?
>> The point is that the IRQ line passes thru something else,
>> and this we model as an irqdomain.
>>
>> Anyway here is a silicon cascaded IRQ chip:
>> arch/arm/mach-versatile/core.c
>> See versatile_init_irq():
>>
>> __vic_init(VA_VIC_BASE, IRQ_VIC_START, ~0, 0, np);
>> (...)
>> fpga_irq_init(VA_SIC_BASE, "SIC", IRQ_SIC_START,
>> IRQ_VICSOURCE31, PIC_VALID, np);
>>
>> The VIC in the versatile has the SIC cascaded from one of
>> its IRQ lines. Both the VIC and SIC (fpga IRQ) are
>> using irqdomains so the SIC spawns a child irqdomain
>> from IRQ 31 (last IRQ) of the VIC.
> Ok, this is a typical example of irqchip cascaded.
>> The difference with a crossbar is that it can software-config
>> which IRQ goes where, and does not have a callback
>> to clear interrupts or anything like that, it just passes them
>> thru. But it is best modeled as an irqdomain IMO.
> We can model crossbar as irqchip and gic as its interrupt parent
> and peripherals to have crossbar as interrupt-parent.
>
> peripherals will do request_irq(crossbar_number)
> |
> |
> crossbar_unmask()
> |
> |
> maps crossbar number<-> to interrupt number and
> calls request_irq(int_no, crossbar_handler,..)
>
>
> crossbar_handler(interrupt number)
> |
> |
> get crossbar number from interrupt number
> |
> |
> handle_irq(crossbar_domain(crossbar number))
>
>
> So this means a extra dummy handler.
Its not optimal to go through the dummy call stack on
fast path but considering its not going to eat too many
instructions, its fine to have dummy handler. We should
try this out.
> Also the concern is by modelling it as irqchip, we will have
> to find a different solution for DMA crossbar.
>
DMAEngine has a notion of logical channel and that was actually
used in the EDMA support series by Matt [1]
We can do something similar to handle that scenario.
[1] https://lkml.org/lkml/2013/6/18/56
next prev parent reply other threads:[~2013-08-22 13:45 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-18 16:43 [PATCH 0/3] Add crossbar driver Sricharan R
2013-07-18 16:43 ` [PATCH 1/3] misc: " Sricharan R
2013-07-18 16:55 ` Joe Perches
2013-07-18 18:25 ` Felipe Balbi
2013-07-21 16:33 ` Linus Walleij
2013-07-18 18:56 ` Nishanth Menon
2013-07-18 23:39 ` Santosh Shilimkar
[not found] ` <51E87C98.5030001-l0cyMroinI0@public.gmane.org>
2013-07-19 0:13 ` Nishanth Menon
2013-07-19 10:48 ` Sricharan R
2013-07-19 7:17 ` Tony Lindgren
2013-07-19 10:48 ` Sricharan R
[not found] ` <51E83A4F.5080904-l0cyMroinI0@public.gmane.org>
2013-07-21 16:49 ` Linus Walleij
2013-07-22 12:20 ` Sricharan R
2013-07-22 16:23 ` Santosh Shilimkar
2013-07-24 16:08 ` Nishanth Menon
2013-07-24 16:38 ` Santosh Shilimkar
2013-07-24 16:47 ` Nishanth Menon
2013-07-24 18:43 ` Sricharan R
2013-07-24 18:51 ` Nishanth Menon
2013-07-24 18:59 ` Santosh Shilimkar
2013-08-13 8:10 ` Tony Lindgren
2013-08-13 9:56 ` Sricharan R
2013-08-13 13:29 ` Santosh Shilimkar
2013-08-15 20:01 ` Linus Walleij
2013-08-15 20:26 ` Santosh Shilimkar
2013-08-15 20:51 ` Linus Walleij
2013-08-15 21:14 ` Santosh Shilimkar
2013-08-21 21:10 ` Linus Walleij
2013-08-22 11:33 ` Sricharan R
2013-08-22 13:45 ` Santosh Shilimkar [this message]
2013-08-23 4:47 ` Rajendra Nayak
2013-08-23 6:11 ` Sricharan R
2013-08-23 6:17 ` Rajendra Nayak
2013-08-23 6:36 ` Sekhar Nori
2013-08-23 6:53 ` Sricharan R
2013-08-23 8:14 ` Sekhar Nori
2013-08-23 13:38 ` Santosh Shilimkar
2013-08-23 16:28 ` Sekhar Nori
2013-08-23 19:06 ` Linus Walleij
2013-08-23 19:44 ` Santosh Shilimkar
2013-08-13 13:28 ` Santosh Shilimkar
2013-08-14 7:27 ` Tony Lindgren
2013-07-18 16:43 ` [PATCH 2/3] ARM: dts: DRA: Add crossbar device binding Sricharan R
2013-07-18 19:04 ` Nishanth Menon
2013-07-18 16:43 ` [PATCH 3/3] ARM: DRA7xx: Enable crossbar driver for the soc Sricharan R
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5216160D.5000308@ti.com \
--to=santosh.shilimkar@ti.com \
--cc=balbi@ti.com \
--cc=devicetree-discuss@lists.ozlabs.org \
--cc=grant.likely@secretlab.ca \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=nm@ti.com \
--cc=r.sricharan@ti.com \
--cc=rnayak@ti.com \
--cc=tglx@linutronix.de \
--cc=tony@atomide.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).