The rtlwifi driver has code fragments that are using old interface or custom code to access PCIe capabilities which is buggy and messy. First two patches are fixes to problems related to ASPM and LNKCTL register RMW operations. The rest of the patches cleanup PCIe capability related code. Additional note: This series provides only a stop-gap solution to the RMW concurrency issue, the overall plan is to migrate all ASPM related handling into the ASPM service driver in order for it to accurately track ASPM state [1]. [1] https://lore.kernel.org/linux-pci/20230918131103.24119-1-ilpo.jarvinen@xxxxxxxxxxxxxxx/ v2: - Remove upstream bridge ASPM code which has never functioned - Convert more bits to pci_regs.h - Ensure _rtl_pci_switch_clk_req() only changes CLKREQ_EN - wifi: prefix to all patches - Add 2 more cleanup patches for unused stuff Ilpo Järvinen (10): wifi: rtlwifi: Remove bogus and dangerous ASPM disable/enable code wifi: rtlwifi: Convert LNKCTL change to PCIe cap RMW accessors wifi: rtlwifi: Convert to use PCIe capability accessors wifi: rtlwifi: rtl8821ae: Remove unnecessary PME_Status bit set wifi: rtlwifi: rtl8821ae: Reverse PM Capability exists check wifi: rtlwifi: rtl8821ae: Use pci_find_capability() wifi: rtlwifi: rtl8821ae: Add pdev into _rtl8821ae_clear_pci_pme_status() wifi: rtlwifi: rtl8821ae: Access full PMCS reg and use pci_regs.h wifi: rtlwifi: Remove unused PCI related defines and struct wifi: rtlwifi: Remove bridge vendor/device ids drivers/net/wireless/realtek/rtlwifi/pci.c | 98 +++++-------------- drivers/net/wireless/realtek/rtlwifi/pci.h | 24 ----- .../wireless/realtek/rtlwifi/rtl8821ae/hw.c | 76 ++++---------- 3 files changed, 43 insertions(+), 155 deletions(-) -- 2.30.2