Here is the series to always build aspm.c, add back L1SS save/restore, and consolidate all ASPM related code in aspm.c. Patch 1 - Moves all PCI core functions running under CONFIG_PCIEASPM into aspm.c and changes they Makefile to always build it. No functional changes. Patch 2 - Creates a separate function to save the L1SS offset and places it outside of CONFIG_PCIEASPM in aspm.c so that the offset is available for later use by the L1SS save/restore code which needs to run when CONFIG_PCIEASPM=n. Patch 3 - Updated L1 Substate save/restore patch from previous V5 [1]. Patch 4 - Moves the LTR save/restore state functions into aspm.c outside of CONFIG_PCIEASPM. Patch 5 - Moves the LTR save/restore state calls into pci_save/restore_pcie_state(). The series does not continue any of the ASPM robustness changes proposed by Ilpo [2]. But if we think it's worth combining with this series I can add it and help continue the work. [1] https://lore.kernel.org/linux-pci/20231221011250.191599-1-david.e.box@xxxxxxxxxxxxxxx/ [2] https://lore.kernel.org/linux-pci/20230918131103.24119-1-ilpo.jarvinen@xxxxxxxxxxxxxxx/ David E. Box (5): PCI: Always build aspm.c PCI: Create function to save L1SS offset PCI/ASPM: Add back L1 PM Substate save and restore PCI: Move pci_save/restore_ltr_state() to aspm.c PCI: Call LTR save/restore state from PCIe save/restore drivers/pci/pci.c | 91 ++++---------- drivers/pci/pci.h | 10 +- drivers/pci/pcie/Makefile | 2 +- drivers/pci/pcie/aspm.c | 257 ++++++++++++++++++++++++++++++++++++-- drivers/pci/probe.c | 62 +-------- include/linux/pci.h | 4 +- 6 files changed, 283 insertions(+), 143 deletions(-) base-commit: 0dd3ee31125508cd67f7e7172247f05b7fd1753a -- 2.34.1