aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci/pcie
diff options
context:
space:
mode:
authorMatthew Garrett <mjg59@coreos.com>2015-04-07 14:07:00 -0400
committerBjorn Helgaas <bhelgaas@google.com>2015-04-09 15:20:11 -0400
commit387d37577fdd05e9472c20885464c2a53b3c945f (patch)
tree5658630a603c2fa28fe5dc54502a0ac4c3bebe43 /drivers/pci/pcie
parent37a9c502c0af013aaae094556830100c2bb133ac (diff)
PCI: Don't clear ASPM bits when the FADT declares it's unsupported
Communications with a hardware vendor confirm that the expected behaviour on systems that set the FADT ASPM disable bit but which still grant full PCIe control is for the OS to leave any BIOS configuration intact and refuse to touch the ASPM bits. This mimics the behaviour of Windows. Signed-off-by: Matthew Garrett <mjg59@coreos.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Diffstat (limited to 'drivers/pci/pcie')
-rw-r--r--drivers/pci/pcie/aspm.c18
1 files changed, 0 insertions, 18 deletions
diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
index 820740a22e94..7d4fcdc512aa 100644
--- a/drivers/pci/pcie/aspm.c
+++ b/drivers/pci/pcie/aspm.c
@@ -782,24 +782,6 @@ void pci_disable_link_state(struct pci_dev *pdev, int state)
782} 782}
783EXPORT_SYMBOL(pci_disable_link_state); 783EXPORT_SYMBOL(pci_disable_link_state);
784 784
785void pcie_clear_aspm(struct pci_bus *bus)
786{
787 struct pci_dev *child;
788
789 if (aspm_force)
790 return;
791
792 /*
793 * Clear any ASPM setup that the firmware has carried out on this bus
794 */
795 list_for_each_entry(child, &bus->devices, bus_list) {
796 __pci_disable_link_state(child, PCIE_LINK_STATE_L0S |
797 PCIE_LINK_STATE_L1 |
798 PCIE_LINK_STATE_CLKPM,
799 false, true);
800 }
801}
802
803static int pcie_aspm_set_policy(const char *val, struct kernel_param *kp) 785static int pcie_aspm_set_policy(const char *val, struct kernel_param *kp)
804{ 786{
805 int i; 787 int i;