Re: [PATCH] PCI/Cardbus cards hidden, needs pci=assign-busses tofix

From: Andrew Morton
Date: Sat Feb 18 2006 - 04:42:55 EST


Bernhard Kaindl <bk@xxxxxxx> wrote:
>
> "In some cases, especially on modern laptops with a lot of PCI and cardbus
> bridges, we're unable to assign correct secondary/subordinate bus numbers
> to all cardbus bridges due to BIOS limitations unless we are using
> "pci=assign-busses" boot option." -- Ivan Kokshaysky (from a patch comment)
>
> Without it, Cardbus cards inserted are never seen by PCI because the
> parent PCI-PCI Bridge of the Cardbus bridge will not pass and translate
> Type 1 PCI configuration cycles correctly and the system will fail to
> find and initialise the PCI devices in the system.
>
> Reference: PCI-PCI Bridges: PCI Configuration Cycles and PCI Bus Numbering:
> http://www.science.unitn.it/~fiorella/guidelinux/tlk/node72.html
>
> The reason for this is that:
> ``All PCI busses located behind a PCI-PCI bridge must reside between the
> secondary bus number and the subordinate bus number (inclusive).''
>
> "pci=assign-busses" makes pcibios_assign_all_busses return 1 and this
> turns on PCI renumbering during PCI probing.
>
> Alan suggested to use DMI to make that function cause that on problem systems:
>
> [ snip patch which uses a DMI table to auto-set "pci=assign-busses" ]
>

I guess if this is the only way in which we can do this, and nobody has any
better solutions then sure, it'll get people's machines going. We'll be
forever patching that table though.

But _does_ anyone have any better solutions?


(Minor squawks: please avoid the running-dialogue-mixed-up-with-patch-segments,
please prepare patches in `patch -p1' form and please send me a Signed-off-by:
for this work, as per section 11 of Documentation/SubmittingPatches, thanks).
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/