[RFC PATCH 4/4] pcie/aspm: Remove CONFIG_PCIEASPM_* policy definitions
From: Thomas Falcon
Date: Wed Apr 29 2026 - 14:08:40 EST
ASPM policy now defaults to POLICY_POWER_SUPERSAVE for new systems
and POLICY_DEFAULT for others while allowing the user to change
policy using the existing pcie_aspm module parameter. Safely remove
CONFIG_PCIEASPM_* policy settings.
Suggested-by: David E. Box <david.e.box@xxxxxxxxxxxxxxx>
Signed-off-by: Thomas Falcon <thomas.falcon@xxxxxxxxx>
---
Documentation/arch/x86/amd-debugging.rst | 5 ++--
arch/mips/configs/bmips_stb_defconfig | 1 -
arch/mips/configs/loongson2k_defconfig | 1 -
drivers/pci/pcie/Kconfig | 33 ------------------------
drivers/pci/pcie/aspm.c | 8 ------
5 files changed, 2 insertions(+), 46 deletions(-)
diff --git a/Documentation/arch/x86/amd-debugging.rst b/Documentation/arch/x86/amd-debugging.rst
index d92bf59d62c7..3f346a46357a 100644
--- a/Documentation/arch/x86/amd-debugging.rst
+++ b/Documentation/arch/x86/amd-debugging.rst
@@ -260,9 +260,8 @@ of the devices.
ASPM
----
For the best runtime power consumption, ASPM should be programmed as intended
-by the BIOS from the hardware vendor. To accomplish this the Linux kernel
-should be compiled with ``CONFIG_PCIEASPM_DEFAULT`` set to ``y`` and the
-sysfs file ``/sys/module/pcie_aspm/parameters/policy`` should not be modified.
+by the BIOS from the hardware vendor. To accomplish this the sysfs file
+``/sys/module/pcie_aspm/parameters/policy`` should not be modified.
Most notably, if L1.2 is not configured properly for any devices, the SoC
will not be able to enter the deepest idle state.
diff --git a/arch/mips/configs/bmips_stb_defconfig b/arch/mips/configs/bmips_stb_defconfig
index ecfa7f777efa..bb19073986a8 100644
--- a/arch/mips/configs/bmips_stb_defconfig
+++ b/arch/mips/configs/bmips_stb_defconfig
@@ -22,7 +22,6 @@ CONFIG_RD_XZ=y
# CONFIG_RD_LZ4 is not set
CONFIG_PCI=y
CONFIG_PCI_MSI=y
-CONFIG_PCIEASPM_POWERSAVE=y
CONFIG_PCIEPORTBUS=y
CONFIG_PCIE_BRCMSTB=y
CONFIG_CPU_FREQ=y
diff --git a/arch/mips/configs/loongson2k_defconfig b/arch/mips/configs/loongson2k_defconfig
index ca534a6b66de..0a2c123eee69 100644
--- a/arch/mips/configs/loongson2k_defconfig
+++ b/arch/mips/configs/loongson2k_defconfig
@@ -88,7 +88,6 @@ CONFIG_RFKILL=m
CONFIG_RFKILL_INPUT=y
CONFIG_PCIEPORTBUS=y
CONFIG_HOTPLUG_PCI_PCIE=y
-CONFIG_PCIEASPM_PERFORMANCE=y
CONFIG_HOTPLUG_PCI=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
diff --git a/drivers/pci/pcie/Kconfig b/drivers/pci/pcie/Kconfig
index 207c2deae35f..069058870506 100644
--- a/drivers/pci/pcie/Kconfig
+++ b/drivers/pci/pcie/Kconfig
@@ -81,39 +81,6 @@ config PCIEASPM
When in doubt, say Y.
-choice
- prompt "Default ASPM policy"
- default PCIEASPM_DEFAULT
- depends on PCIEASPM
-
-config PCIEASPM_DEFAULT
- bool "BIOS default"
- depends on PCIEASPM
- help
- Use the BIOS defaults for PCI Express ASPM.
-
-config PCIEASPM_POWERSAVE
- bool "Powersave"
- depends on PCIEASPM
- help
- Enable PCI Express ASPM L0s and L1 where possible, even if the
- BIOS did not.
-
-config PCIEASPM_POWER_SUPERSAVE
- bool "Power Supersave"
- depends on PCIEASPM
- help
- Same as PCIEASPM_POWERSAVE, except it also enables L1 substates where
- possible. This would result in higher power savings while staying in L1
- where the components support it.
-
-config PCIEASPM_PERFORMANCE
- bool "Performance"
- depends on PCIEASPM
- help
- Disable PCI Express ASPM L0s and L1, even if the BIOS enabled them.
-endchoice
-
config PCIE_PME
def_bool y
depends on PCIEPORTBUS && PM
diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
index 1c81e2f2e589..112904a75a4c 100644
--- a/drivers/pci/pcie/aspm.c
+++ b/drivers/pci/pcie/aspm.c
@@ -258,15 +258,7 @@ static LIST_HEAD(link_list);
#define POLICY_POWERSAVE 2 /* high power saving */
#define POLICY_POWER_SUPERSAVE 3 /* possibly even more power saving */
-#ifdef CONFIG_PCIEASPM_PERFORMANCE
-static int aspm_policy = POLICY_PERFORMANCE;
-#elif defined CONFIG_PCIEASPM_POWERSAVE
-static int aspm_policy = POLICY_POWERSAVE;
-#elif defined CONFIG_PCIEASPM_POWER_SUPERSAVE
-static int aspm_policy = POLICY_POWER_SUPERSAVE;
-#else
static int aspm_policy;
-#endif
static int aspm_default_policy = POLICY_POWER_SUPERSAVE;
static bool aspm_user_policy;
--
2.43.0