aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorAndrew Patterson <andrew.patterson@hp.com>2008-11-10 17:30:55 -0500
committerJesse Barnes <jbarnes@virtuousgeek.org>2009-01-07 14:12:29 -0500
commit3e1b16002af29758b6bc9c38939d43838d9335bc (patch)
tree6782f844e3813355280ad3367c58d90d576901f2 /drivers
parent0ef5f8f6159e44b4faa997be08d1a3bcbf44ad08 (diff)
ACPI/PCI: PCIe ASPM _OSC support capabilities called when root bridge added
The _OSC capabilities OSC_ACTIVE_STATE_PWR_SUPPORT and OSC_CLOCK_PWR_CAPABILITY_SUPPORT are set when the root bridge is added with pci_acpi_osc_support(), so we no longer need to do it in the ASPM driver. Also add the function pcie_aspm_enabled, which returns true if pcie_aspm=off is not on the kernel command-line. Signed-off-by: Andrew Patterson <andrew.patterson@hp.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/acpi/pci_root.c3
-rw-r--r--drivers/pci/pcie/aspm.c27
2 files changed, 12 insertions, 18 deletions
diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
index 96e68e84153..9fe026b1c9d 100644
--- a/drivers/acpi/pci_root.c
+++ b/drivers/acpi/pci_root.c
@@ -347,6 +347,9 @@ static int __devinit acpi_pci_root_add(struct acpi_device *device)
347 /* Indicate support for various _OSC capabilities. */ 347 /* Indicate support for various _OSC capabilities. */
348 if (pci_ext_cfg_avail(root->bus->self)) 348 if (pci_ext_cfg_avail(root->bus->self))
349 flags |= OSC_EXT_PCI_CONFIG_SUPPORT; 349 flags |= OSC_EXT_PCI_CONFIG_SUPPORT;
350 if (pcie_aspm_enabled())
351 flags |= OSC_ACTIVE_STATE_PWR_SUPPORT |
352 OSC_CLOCK_PWR_CAPABILITY_SUPPORT;
350 if (flags != base_flags) 353 if (flags != base_flags)
351 pci_acpi_osc_support(device->handle, flags); 354 pci_acpi_osc_support(device->handle, flags);
352 355
diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
index 9aad608bcf3..e361c7dc726 100644
--- a/drivers/pci/pcie/aspm.c
+++ b/drivers/pci/pcie/aspm.c
@@ -857,24 +857,15 @@ void pcie_no_aspm(void)
857 aspm_disabled = 1; 857 aspm_disabled = 1;
858} 858}
859 859
860#ifdef CONFIG_ACPI 860/**
861#include <acpi/acpi_bus.h> 861 * pcie_aspm_enabled - is PCIe ASPM enabled?
862#include <linux/pci-acpi.h> 862 *
863static void pcie_aspm_platform_init(void) 863 * Returns true if ASPM has not been disabled by the command-line option
864{ 864 * pcie_aspm=off.
865 pcie_osc_support_set(OSC_ACTIVE_STATE_PWR_SUPPORT| 865 **/
866 OSC_CLOCK_PWR_CAPABILITY_SUPPORT); 866int pcie_aspm_enabled(void)
867}
868#else
869static inline void pcie_aspm_platform_init(void) { }
870#endif
871
872static int __init pcie_aspm_init(void)
873{ 867{
874 if (aspm_disabled) 868 return !aspm_disabled;
875 return 0;
876 pcie_aspm_platform_init();
877 return 0;
878} 869}
870EXPORT_SYMBOL(pcie_aspm_enabled);
879 871
880fs_initcall(pcie_aspm_init);