On Feb 9, 2008 9:53 AM, Peter Stuge peter@stuge.se wrote:
Perhaps we can combine all previous ways of describing interrupt routing in a new, better, simpler way?
Then have generators for ACPI, PIRQ, device tree, whatever..
This just started sounding really hard.
I don't know if we need total generality, thinking about it. I am guessing that, in any general scheme, we should drop $PIR from a list of things we care about.
$PIR is really deprecated. And it doesn't work all that well anyway -- the kernel(s) keep getting it wrong. The kernel only really looks at $PIR when the 3c.b register is zero. We're better off just setting this stuff in the kernel.
So, maybe what I should have done, for older systems like LX, is have a simple hardwire map in the mainboard for specifying how to set interrupt registers, and just drop $PIR entirely? I think we should ignore $PIR in any future scheme, and do something simple for now.
FWIW, the interrupt map for these systems is just a 2d array, and on the LX map, many of the entries in the array are zero.
It's also a sparse array, with just two indices: the busdevfn (16 bits) and the interrupt # (2 bits).
Will removing PIR hurt hot plug? I doubt it -- hot plug is for newer stuff and that's all PCI-E anyway.
Just some random thoughts. Who understands ACPI interrupt specification? I still don't.
ron