* Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx>: > On Monday, January 5, 2009 10:47 am Jesse Barnes wrote: > > On Tuesday, December 16, 2008 7:07 pm Kenji Kaneshige wrote: > > > There is a problem that some non hot-pluggable PCIe slots are detected > > > as hot-pluggable by pciehp on some platforms. The immediate cause of > > > this problem is that hot-plug capable bit in the Slot Capabilities > > > register is set even for non hot-pluggable slots on those platforms. > > > It seems a BIOS/hardware problem, but we need workaround about that. > > > > > > Some of those platforms define hot-pluggable PCIe slots on ACPI > > > namespace properly, while hot-plug capable bit in the Slot > > > Capabilities register is set improperly. So using ACPI namespace > > > information in pciehp to detect PCIe hot-pluggable slots would be a > > > workaround. > > > > > > This patch adds 'pciehp_detect_mode' module option. When 'acpi' is > > > specified, pciehp uses ACPI namespace information to detect PCIe > > > hot-pluggable slots. > > > > > > Signed-off-by: Kenji Kaneshige <kaneshige.kenji@xxxxxxxxxxxxxx> > > > > Thanks Kenji-san, I applied these three. Hopefully Alex can test on some > > of his problematic platforms; I'll see if it helps on my systems too. > > Cool, this one seems to fix the slot detection issue on my t61 at least. I > only see one slot now and no conflicts apparently. acpiphp still registers > two slots with a slot number of 1 (so I get "1" and "1-1"), but pciehp just > registers one called "5", which matches what acpiphp sees in slot "1". The symptoms sound like your namespace is broken in two ways: - presenting multiple slots when there is only 1 - the slots both have _SUN value of 1 Kenji-san's patch only tweaks pciehp in a way to better detect hotpluggable slots; pciehp will still get the name of the slot from PCI config space (slot capabilities) and not the _SUN. So, the PCIe registers were programmed correctly by BIOS, but ACPI sounds hosed. :-/ Just to verify, can I see the output of 1/address and 1-1/address, along with lspci -vt output and your DSDT? I don't suspect we'll be able to do anything about that in acpiphp; at least I don't have any ideas off the top of my head. Maybe we can do something like the reverse logic in acpiphp -- if we find duplicate slot names, then bomb out and suggest trying pciehp instead? (Ok, that wasn't a serious proposal because of how ugly it was, but maybe it'll inspire someone else to come up with a better idea.) Thanks. /ac -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html