[PATCH 0/6] PCI/ASPM: Fix pci_enable_link_state*() APIs behavior
Manivannan Sadhasivam via B4 Relay
devnull+manivannan.sadhasivam.oss.qualcomm.com at kernel.org
Wed Jul 16 05:56:19 PDT 2025
Hi,
This series fixes the behavior of the pci_enable_link_state() and
pci_enable_link_state_locked() APIs to be in symmetry with
pci_disable_link_state*() couterparts.
First 3 patches fixes and cleans up the ASPM code and the last 3 patches
modifies the atheros drivers to use the pci{enable/disable}_link_state() APIs
instead of modifying the LNKCTL register directly for enabling ASPM.
NOTE: The current callers of the pci_enable_link_state_locked() APIs (vmd and
pcie-qcom) drivers doesn't look like depending on the old behavior of the API. I
can atleast assure that for pcie-qcom. For VMD, it would be great if VMD folks
CCed could provide their review tags for patch 1/6.
Testing
=======
I've tested this series on Lenovo Thinkpad T14s with WCN7850 chipset (so that's
just ath12k driver). Rest of the drivers are compile tested only.
Merging Strategy
================
Even though there is no build dependency between PCI core and atheros patches,
there is a functional dependency. So I'd recommend creating an immutable branch
with PCI patches and merging that branch into both PCI and linux-wireless trees
and finally merging the atheros patches into linux-wireless tree.
If immutable branch seems like a hassle, then PCI core patches could get merged
for 6.17 and atheros patches can wait for 6.18.
- Mani
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam at oss.qualcomm.com>
---
Manivannan Sadhasivam (6):
PCI/ASPM: Fix the behavior of pci_enable_link_state*() APIs
PCI/ASPM: Transition the device to D0 (if required) inside pci_enable_link_state_locked() API
PCI/ASPM: Improve the kernel-doc for pci_disable_link_state*() APIs
wifi: ath12k: Use pci_{enable/disable}_link_state() APIs to enable/disable ASPM states
wifi: ath11k: Use pci_{enable/disable}_link_state() APIs to enable/disable ASPM states
wifi: ath10k: Use pci_{enable/disable}_link_state() APIs to enable/disable ASPM states
drivers/net/wireless/ath/ath.h | 14 ++++++
drivers/net/wireless/ath/ath10k/pci.c | 7 +--
drivers/net/wireless/ath/ath11k/pci.c | 10 ++---
drivers/net/wireless/ath/ath12k/pci.c | 10 ++---
drivers/pci/controller/dwc/pcie-qcom.c | 5 ---
drivers/pci/controller/vmd.c | 5 ---
drivers/pci/pcie/aspm.c | 78 ++++++++++++++++++++++++----------
7 files changed, 79 insertions(+), 50 deletions(-)
---
base-commit: 19272b37aa4f83ca52bdf9c16d5d81bdd1354494
change-id: 20250711-ath-aspm-fix-c17442a5a9ae
Best regards,
--
Manivannan Sadhasivam <manivannan.sadhasivam at oss.qualcomm.com>
More information about the ath12k
mailing list