summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMihail Dimoski <mihaildimoski@gmail.com>2026-07-18 14:40:45 +0200
committerPing-Ke Shih <pkshih@realtek.com>2026-07-24 11:38:52 +0800
commitb0034a2e415603daa1cf00363b407cc145bbcd31 (patch)
treee0f9f5df025a2314eb63bc87b557108032549a1d
parent38c58d541cfe286880cdadebc5d726fe18e3b615 (diff)
downloadlinux-next-b0034a2e415603daa1cf00363b407cc145bbcd31.tar.gz
linux-next-b0034a2e415603daa1cf00363b407cc145bbcd31.zip
wifi: rtw88: disable ASPM and deep PS on ASUS TUF Gaming A15 FA506II
The RTL8822CE on the ASUS TUF Gaming A15 FA506II wedges during normal use. The driver watchdog toggles PCIe ASPM while leaving power save; the DBI read of the ASPM link-config register fails with -EIO, the PCIe link becomes unstable, and the device drops off the bus, taking Wi-Fi down until a cold power cycle: rtw88_8822ce 0000:03:00.0: failed to read ASPM, ret=-5 rtw88_8822ce 0000:03:00.0: firmware failed to leave lps state rtw88_8822ce 0000:03:00.0: mac power on failed This is the same platform ASPM inter-operability problem already handled for other machines through rtw_pci_quirks[]. Disabling PCI ASPM and deep power save on this model stops the failure. Add a DMI quirk so the workaround is applied automatically. Signed-off-by: Mihail Dimoski <mihaildimoski@gmail.com> Acked-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Link: https://patch.msgid.link/20260718124045.23493-1-mihaildimoski@gmail.com
-rw-r--r--drivers/net/wireless/realtek/rtw88/pci.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/wireless/realtek/rtw88/pci.c b/drivers/net/wireless/realtek/rtw88/pci.c
index 69f2840fed09..5b00c1e1eec6 100644
--- a/drivers/net/wireless/realtek/rtw88/pci.c
+++ b/drivers/net/wireless/realtek/rtw88/pci.c
@@ -1779,6 +1779,16 @@ static const struct dmi_system_id rtw_pci_quirks[] = {
.driver_data = (void *)(BIT(QUIRK_DIS_CAP_PCI_ASPM) |
BIT(QUIRK_DIS_CAP_LPS_DEEP)),
},
+ {
+ .callback = rtw_pci_disable_caps,
+ .ident = "ASUS TUF Gaming A15 FA506II",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+ DMI_MATCH(DMI_BOARD_NAME, "FA506II"),
+ },
+ .driver_data = (void *)(BIT(QUIRK_DIS_CAP_PCI_ASPM) |
+ BIT(QUIRK_DIS_CAP_LPS_DEEP)),
+ },
{}
};