PCI IRQ routing change broke PCMCIA/prism54 driver

Russell King rmk+pcmcia at arm.linux.org.uk
Wed Aug 18 17:41:29 EDT 2004

On Tue, Aug 17, 2004 at 11:05:25AM -0600, Bjorn Helgaas wrote:
> On Saturday 14 August 2004 3:31 pm, Russell King wrote:
> > However, with Cardbus, the socket is multi-purpose (it can contain
> > a PCMCIA card or Cardbus card) and the meaning of the various signals
> > is dependent on the type of card inserted.  Therefore, only the
> > Cardbus bridge itself knows the purpose of the signals from the
> > socket.
> > 
> > When in Cardbus mode, there is only one interrupt line for child
> > devices, and this will be forwarded upstream from the bridge using
> > the Cardbus bridge IRQ itself.  Therefore, all child devices of a
> > Cardbus bridge will always have the same PCI IRQ as the Cardbus
> > bridge to which it is connected.
> Thanks for the explanation.  That helps the stuff in acpi_pci_irq_derive()
> make sense.  Are you comfortable with the code there?  It feels to me
> like something that should be in a per-bridge callback, but maybe that's
> not necessary.

I'm not sure that works for cases where you have a couple of PCI
busses behind a cardbus bridge.

Unfortunately, although I have the hardware for that, I have no
machines which are both ACPI-supporting and have Cardbus bridges
in, so I can't test.

In this case, there is no swizzling across child bridges, even in
the case of (eg) a 4 port Tulip card plugged in to a PCI bus which
is then connected to a Cardbus socket.

I think what the ACPI code needs to do is say "is this device a
child of a Cardbus bridge" and if yes, it needs to leave well

Russell King
 Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:  2.6 PCMCIA      - http://pcmcia.arm.linux.org.uk/
                 2.6 Serial core

More information about the linux-pcmcia mailing list