Commit ea5f9fc5 authored by Matthew Garrett's avatar Matthew Garrett Committed by Jesse Barnes

PCI: Default PCIe ASPM control to on and require !EMBEDDED to disable

The CONFIG_PCIEASPM option is confusing and potentially dangerous. ASPM is
a hardware mediated feature rather than one under direct OS control, and
even if the config option is disabled the system firmware may have turned
on ASPM on various bits of hardware. This can cause problems later -
various hardware that claims to support ASPM does a poor job of it and may
hang or cause other difficulties. The kernel is able to recognise this in
many cases and disable the ASPM functionality, but only if CONFIG_PCIEASPM
is enabled.

Given that in its default configuration this option will either leave the
hardware as it was originally or disable hardware functionality that may
cause problems, it should by default y. The only reason to disable it
ought to be to reduce code size, so make it dependent on CONFIG_EMBEDDED.
Signed-off-by: default avatarMatthew Garrett <mjg@redhat.com>
Cc: lrodriguez@atheros.com
Cc: maximlevitsky@gmail.com
Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
parent 8cc2bfd8
...@@ -31,14 +31,22 @@ source "drivers/pci/pcie/aer/Kconfig" ...@@ -31,14 +31,22 @@ source "drivers/pci/pcie/aer/Kconfig"
# PCI Express ASPM # PCI Express ASPM
# #
config PCIEASPM config PCIEASPM
bool "PCI Express ASPM support(Experimental)" bool "PCI Express ASPM control" if EMBEDDED
depends on PCI && EXPERIMENTAL && PCIEPORTBUS depends on PCI && PCIEPORTBUS
default n default y
help help
This enables PCI Express ASPM (Active State Power Management) and This enables OS control over PCI Express ASPM (Active State
Clock Power Management. ASPM supports state L0/L0s/L1. Power Management) and Clock Power Management. ASPM supports
state L0/L0s/L1.
When in doubt, say N. ASPM is initially set up the the firmware. With this option enabled,
Linux can modify this state in order to disable ASPM on known-bad
hardware or configurations and enable it when known-safe.
ASPM can be disabled or enabled at runtime via
/sys/module/pcie_aspm/parameters/policy
When in doubt, say Y.
config PCIEASPM_DEBUG config PCIEASPM_DEBUG
bool "Debug PCI Express ASPM" bool "Debug PCI Express ASPM"
depends on PCIEASPM depends on PCIEASPM
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment