From: Segher Boessenkool <segher@kernel.crashing.org>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: linuxppc-dev@ozlabs.org
Subject: Re: 83xx GPIO/EXT int in arch/powerpc/
Date: Thu, 7 Jun 2007 14:55:10 +0200 [thread overview]
Message-ID: <d3c57096eec4553de180adab085d0145@kernel.crashing.org> (raw)
In-Reply-To: <1181169093.31677.260.camel@localhost.localdomain>
>> - You can do it in your interrupt-map. That's probably the cleanest
>>> way
>>> to do it.
>>
>> Not really. If the device interrupt is physically connected
>> directly to a GPIO or a PIC or whatever, if it doesn't go
>> through the PCI bus; then it shouldn't be represented in
>> the device tree as if it did. The higher-up bridge has
>> nothing whatsoever to do with this device's interrupt.
>>
>> It's a simple hack of course, it can be useful sometimes.
>> It's not "clean" at all however.
>
> I disagree :-)
I think you didn't notice that I was talking about
pretending the IRQ signal of a device on PCI bus #1
being routed through PCI bus #0, the grandparent bus
of the device instead of the parent bus. If it were
about the direct parent bus than anything could be
handled with an interrupt-map just fine, in the current
situation it is just ugly and wrong and it cannot work
in slightly more general situations, either.
> The interrupt-map simply provides for each slot where the interrupt
> goes. It's perfectly fine and clean to use it when those interrupts are
> hooked to GPIOs and has been a common practice. I really don't see a
> problem with that.
You shouldn't map interrupts from devices on your
children's busses, that's the problem.
>> Depending on the rest of the tree, this would often mean
>> you have to do a much bigger interrupt-map-mask than
>> without this hack, and the corresponding explosion in
>> interrupt-map size.
>
> Not really again. Besides, devices normally use only int#A, only
> bridges
> use more.
Again, in the case under discussion, PCI bus# needs to
be part of the map-mask, and you can't do swizzling (or
a simple direct translation, whatever is appropriate)
for the bus-bus connection -- you have to spell out every
source deep down the domain.
> Segher, I feel here that your inability to resist arguing about
> everything in that case is confusing what is a fairly simple issue in
> the first place :-)
It isn't simple. It is also wrong. If a bus does
not deliver interrupts from its children to its
parent, than the device tree should not pretend it
does.
> Poor guy trying to figure out the right way to do
> his stuff will run away screaming and go back hard coding his number in
> his platform code before we are finished :-)
Heh I hope not.
> So I would say, taking a dicator hat, that the right way to fix his
> problem is also the simplest, which is to make sure the interrupt-map
> entry for that slot points to the right GPIO interrupt :-)
It's wrong and not simple. Let me show you with some
pictures. A device X on PCI bus P1, interrupt goes
straight to interrupt controller I.
Here's what you say is right:
P0 interrupt-map < ...reg 19000 irq IRQ -> I... >
|
P1
|
X@12 reg <19000>
interrupt-parent <P0>
interrupt <IRQ>
And here is my version:
P0
|
P1 interrupt-map < ... reg 9000 irq IRQ -> I ... >
|
X@12 reg <19000>
interrupt-parent <P0>
interrupt <IRQ>
> Easy isn't it ?
Yes, it's only hard if you're trying to avoid doing
mapping properties where they are necessary, including
stand-alone interrupt nexus nodes (not needed in this
case btw, not needed most simple cases).
Segher
next prev parent reply other threads:[~2007-06-07 12:55 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-04 9:56 83xx GPIO/EXT int in arch/powerpc/ Marc Leeman
2007-06-04 19:25 ` Andy Fleming
2007-06-04 19:35 ` Segher Boessenkool
2007-06-04 21:17 ` Marc Leeman
2007-06-04 21:57 ` Andy Fleming
2007-06-05 10:13 ` Segher Boessenkool
2007-06-06 7:03 ` Benjamin Herrenschmidt
2007-06-06 9:47 ` Segher Boessenkool
2007-06-06 22:31 ` Benjamin Herrenschmidt
2007-06-07 12:55 ` Segher Boessenkool [this message]
2007-06-11 16:21 ` Marc Leeman
2007-06-12 13:31 ` Kumar Gala
2007-06-12 16:06 ` Marc Leeman
2007-06-14 21:04 ` Kumar Gala
2007-06-15 8:12 ` Marc Leeman
2007-06-05 10:12 ` Segher Boessenkool
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=d3c57096eec4553de180adab085d0145@kernel.crashing.org \
--to=segher@kernel.crashing.org \
--cc=benh@kernel.crashing.org \
--cc=linuxppc-dev@ozlabs.org \
/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).