|
@@ -571,8 +571,15 @@ static int __devinit acpi_pci_root_add(struct acpi_device *device)
|
|
|
OSC_CLOCK_PWR_CAPABILITY_SUPPORT;
|
|
|
if (pci_msi_enabled())
|
|
|
flags |= OSC_MSI_SUPPORT;
|
|
|
- if (flags != base_flags)
|
|
|
- acpi_pci_osc_support(root, flags);
|
|
|
+ if (flags != base_flags) {
|
|
|
+ status = acpi_pci_osc_support(root, flags);
|
|
|
+ if (ACPI_FAILURE(status)) {
|
|
|
+ dev_info(root->bus->bridge, "ACPI _OSC support "
|
|
|
+ "notification failed, disabling PCIe ASPM\n");
|
|
|
+ pcie_no_aspm();
|
|
|
+ flags = base_flags;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
if (!pcie_ports_disabled
|
|
|
&& (flags & ACPI_PCIE_REQ_SUPPORT) == ACPI_PCIE_REQ_SUPPORT) {
|