Hi Bjorn, First, thanks for the review > The spec (PCI Firmware spec 3.0, sec 4.5) says _OSC is a child of an > ACPI device and applies to that device. In your case, I think there > is no ACPI PNP0A0x device for the VMD host bridge, and hence there is > no _OSC method for it. There's no ACPI handle for the VMD bridge, so > I think pcie_port_acpi_setup() returns -EINVAL, which causes > get_port_device_capability() to give up and decide that the port > can't support *any* PCIe services. > > I think that's the real problem: the fact that there's no ACPI device > corresponding to the bridge should not be an error. It should just > mean the platform doesn't have an opportunity to limit what services > the kernel can manage. I think pcie_port_acpi_setup() should return 0 > in all cases. Can you try that and see if it fixes the problem? > I believe what you are suggesting is: handle = acpi_find_root_bridge_handle(port); if (!handle) - return -EINVAL; + return 0; root = acpi_pci_find_root(handle); if (!root) - return -ENODEV; + return 0; This works for me. I will follow up with a proper patch. -- 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