PCI IRQ routing change broke PCMCIA/prism54 driver
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
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