[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]>