diff options
Diffstat (limited to 'drivers/acpi/pci_root.c')
| -rw-r--r-- | drivers/acpi/pci_root.c | 11 | 
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c index ec54014c321..72a2c98bc42 100644 --- a/drivers/acpi/pci_root.c +++ b/drivers/acpi/pci_root.c @@ -573,8 +573,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) {  |