PCI Bus Card Problems
Russell King
rmk+pcmcia at arm.linux.org.uk
Thu Sep 1 05:22:35 EDT 2005
On Thu, Sep 01, 2005 at 11:15:42AM +0200, Dominik Brodowski wrote:
> On x86, this is the case since 2.6.13, as x86 switched to the generic PCI
> subsystem setup code, IIRC. Do you know why this doesn't handle the ARM case
> correctly?
No idea - I just keep using the patch because it works for me. I've
little interest in delving into this code anymore.
> > config_writel(socket, PCI_BASE_ADDRESS_0, dev->resource[0].start);
>
> Might this just miss a pcibus_resource_to_bus() conversion of dev->resource[0].start?
It does look like it.
> > config_writew(socket, PCI_COMMAND,
> > PCI_COMMAND_IO |
> > @@ -955,6 +959,7 @@
> > (dev->subordinate->subordinate << 16) | /* subordinate bus */
> > (dev->subordinate->secondary << 8) | /* secondary bus */
> > dev->subordinate->primary); /* primary bus */
> > +#endif
>
> Why the rest of it?
I moved these to the generic PCI layer a while back, and so in theory
these are no longer required. However, I never tested it on an x86
box so I was never happy to remove them.
> > + pci_set_master(dev);
>
> Is this ARM-specific? Should this go in unconditionally?
Probably unconditionally, but as I've said above, it never got tested
on x86.
> Also, to me it seems that the original poster had mostly a problem with the
> IRQ not being allocated properly -- or is this a symptom rather than the
> cause?
Check what's happening - the socket status is 0xffffffff which implies
we can't access the socket registers. Hence we'll never produce an IRQ
and fail to cause a PCI interrupt.
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core
More information about the linux-pcmcia
mailing list