[BUG] Ricoh Cardbus -> Can't get interrupts
torvalds at osdl.org
Mon Nov 24 18:24:54 GMT 2003
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?
More information about the linux-pcmcia