Messages in this thread | | | Date | Mon, 24 Nov 2003 18:24:54 -0800 (PST) | From | Linus Torvalds <> | Subject | Re: [BUG] Ricoh Cardbus -> Can't get interrupts |
| |
On Mon, 24 Nov 2003, Linus Torvalds wrote: > > We don't ever try to autoprobe for PCI interrupts, because it's fragile > and tends to cause lockups on any hardware where the irq is shared with > something else
Side note as way of explanation: autoprobing for ISA interrupts only works because they are edge-triggered, so even if they are shared - which is against the ISA spec, but commonly done anyway - the autoprobe would just fail, not lock up the machine.
PCI interrupts are not only _routinely_ shared (making them fundamentally harder to probe for), but they are level-triggered, so if you don't shut them off in the interrupt handler, you end up with a dead machine that constantly takes interrupts.
These days, our improved irq handler infrastructure could actually pick out the shared interrupts from the probed ones (now that drivers return a status word saying whether the irq was for an existing driver or not), so we could some day allow even PCI drivers to autodetect the irq if everything else fails.
But it's _very_ rare to see it fail. The 2.4.x cardbus driver does the same thing, and I don't know of any consistent failure patterns. What kind of strange machine is this, Jean? Prototype with a broken BIOS?
Linus - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |