Active State Power Management (ASPM) is an enhancement of Peripheral Component Interconnect Express (PCIe) that saves a lot of power by setting a device in idle state. The Linux kernel has also enabled ASPM support for the PCI Express interface.
Now it seems like removal of a few lines of code that were ignored for the last 12 years can bring more power saving to some Linux system. Kai-Heng Feng from Canonical reported a bug for disabled ASPM L1 on TI PCIe-to-PCI Bridge. While pushing the patch to Linux, he also stated that disabled ASPM on the device prevents the Intel SoC from entering deeper Package C-State like PC8.
This leads to high power consumption. Hence, Linux needs to enable ASPM L1 on the bridge-to-bridge link to save additional power.
He further adds that Windows has enabled ASPM L1 on the device and its upstream bridge. Hence, it can make the Intel SoC reach PC8 or PC10 to save lots of power. On the other hand, Linux system disables ASPM if a downstream component has a bridge function, i.e., PCIe-to-PCI/PCI-X Bridge.
This is because, back in 2008, Shaohua Li committed a patch to add PCI Express ASPM support which featured in Linux Kernel 2.6.26. But for some unknown reason, Li discarded ASPM for the PCI bridge function.
So Kai has now completely removed a piece of code that disables the ASPM for special cases; the new patch is scheduled for the Linux 5.8 merge window, which will most likely open next month.
If you use the PCIe-to-PCI bridge module in your system, you can expect a less power consumption in Linux 5.8.
Source — Phoronix