[PATCH] wifi: rtw88: disable ASPM and deep PS on ASUS TUF Gaming A15 FA506IH

Rahul Kumar Rai <[email protected]>
Newsgroups org.kernel.feeds.b4-sent,org.kernel.vger.linux-kernel,org.kernel.vger.linux-wireless
Message-ID <[email protected]>
The RTL8822CE on the ASUS TUF Gaming A15 FA506IH fails to return from
PCIe low-power states across system suspend. The device is inaccessible
on the way back to D0, so the MAC power-on sequence and the firmware
handshake that follow it fail, and the driver gives up. Wi-Fi stays
unavailable until the machine is powered off completely:

  rtw88_8822ce 0000:03:00.0: Unable to change power state from D3cold to D0, device inaccessible
  rtw88_8822ce 0000:03:00.0: failed to poll offset=0x5 mask=0x2 value=0x0
  rtw88_8822ce 0000:03:00.0: mac power on failed
  rtw88_8822ce 0000:03:00.0: probe with driver rtw88_8822ce failed with error -114

Reads of the ASPM link-configuration register over DBI also time out
around the same transitions.

This is not a one-off. It has been recurring on this machine for a long
time. The kernel logs still on disk begin at 2026-07-20 and already
contain six failed D-state transitions and three probe failures of this
kind, and the problem was present well before that window.

This is the same platform ASPM inter-operability problem already handled
for other machines through rtw_pci_quirks[], including the closely
related ASUS TUF Gaming A15 FA506II. The FA506IH reports a different DMI
board name, so that entry does not match. Disabling PCI ASPM and deep
power save stops the failure on this model as well.

  DMI_SYS_VENDOR = ASUSTeK COMPUTER INC.
  DMI_BOARD_NAME = FA506IH

Signed-off-by: Rahul Kumar Rai <[email protected]>
---
 drivers/net/wireless/realtek/rtw88/pci.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/net/wireless/realtek/rtw88/pci.c b/drivers/net/wireless/realtek/rtw88/pci.c
index 5b00c1e1eec6..fcb6f4c4cc2d 100644
--- a/drivers/net/wireless/realtek/rtw88/pci.c
+++ b/drivers/net/wireless/realtek/rtw88/pci.c
@@ -1789,6 +1789,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 FA506IH",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+			DMI_MATCH(DMI_BOARD_NAME, "FA506IH"),
+		},
+		.driver_data = (void *)(BIT(QUIRK_DIS_CAP_PCI_ASPM) |
+					BIT(QUIRK_DIS_CAP_LPS_DEEP)),
+	},
 	{}
 };
 

---
base-commit: 66fb95a521110da673090294561844c9f76ebe64
change-id: 20260823-fa506ih-rtw88-quirk-6c157d80c0f1

Best regards,
--  
Rahul Kumar Rai <[email protected]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.