Re: Bugfixes: PCI devices get assigned redundant IRQs

From: H. Peter Anvin
Date: Sun Jan 28 2007 - 03:05:15 EST


Andreas Block wrote:

Aren't there platforms for which irq = 0 is a valid irq ?

As far as I understand the PCI spec, the answer to your question seems to be: no
(or I'm missing something).

Don't get me wrong. I'm not talking about system IRQs, but about the value of the Interrupt Pin Register in PCI configuration space.

The PCI Local Bus Specification in Revision 3.0 from 3rd February 2004 says on page 223 about the content of Interrupt Pin register:

Value 0x00: _No_ interrupt
Values 0x01 to 0x04: Interrupt lines A to D
And values 5 to 0xFF are reserved.

So I'd say, the "correction" of greater values than four to a value of one seems discussable, too. Because it will break any future changes of the PCI spec.


I think you're confusing the Interrupt Line register and the Interrupt Pin register. The Interrupt Line register is platform-dependent, but on x86 platforms it generally contains the IRQ number (and IRQ 0 is valid, although in practice it is never used since IRQ 0 is the system timer and is never connected to the PCI bus), or 255 meaning "none" -- see the footnote on page 223 of the PCI 3.0 spec.

-hpa
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/