drivers/net/wireless/realtek/rtw88/pci.c | 9 +++++++++ 1 file changed, 9 insertions(+)
The Lenovo IdeaPad S340-14IWL (DMI product name "81N4") experiences
severe connectivity issues with the rtw88 PCIe wireless card when
ASPM is enabled. Reported symptoms include frequent disconnections,
kernel panics, and the driver failing to load.
The issue can be worked around by either adding pci=noaspm to the
kernel command line or by reloading the driver via modprobe. Add a
DMI quirk to disable ASPM automatically for this device.
Signed-off-by: Ata İlhan Köktürk <atailhan2006@gmail.com>
---
drivers/net/wireless/realtek/rtw88/pci.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/net/wireless/realtek/rtw88/pci.c b/drivers/net/wireless/realtek/rtw88/pci.c
index a30467228..9df8954d8 100644
--- a/drivers/net/wireless/realtek/rtw88/pci.c
+++ b/drivers/net/wireless/realtek/rtw88/pci.c
@@ -1779,6 +1779,15 @@ 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 = "Lenovo IdeaPad S340-14IWL",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "81N4"),
+ },
+ .driver_data = (void *)(BIT(QUIRK_DIS_CAP_PCI_ASPM)),
+ },
{}
};
--
2.55.0
On 20/08/2026 13:16, Ata İlhan Köktürk wrote:
> The Lenovo IdeaPad S340-14IWL (DMI product name "81N4") experiences
> severe connectivity issues with the rtw88 PCIe wireless card when
> ASPM is enabled. Reported symptoms include frequent disconnections,
> kernel panics, and the driver failing to load.
>
> The issue can be worked around by either adding pci=noaspm to the
> kernel command line or by reloading the driver via modprobe. Add a
> DMI quirk to disable ASPM automatically for this device.
>
> Signed-off-by: Ata İlhan Köktürk <atailhan2006@gmail.com>
> ---
> drivers/net/wireless/realtek/rtw88/pci.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/drivers/net/wireless/realtek/rtw88/pci.c b/drivers/net/wireless/realtek/rtw88/pci.c
> index a30467228..9df8954d8 100644
> --- a/drivers/net/wireless/realtek/rtw88/pci.c
> +++ b/drivers/net/wireless/realtek/rtw88/pci.c
> @@ -1779,6 +1779,15 @@ 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 = "Lenovo IdeaPad S340-14IWL",
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
> + DMI_MATCH(DMI_PRODUCT_NAME, "81N4"),
> + },
> + .driver_data = (void *)(BIT(QUIRK_DIS_CAP_PCI_ASPM)),
> + },
> {}
> };
>
By the way, what wifi chip do you have? It would be good to mention
that in the summary.
Ata İlhan Köktürk <atailhan2006@gmail.com> wrote:
> The Lenovo IdeaPad S340-14IWL (DMI product name "81N4") experiences
> severe connectivity issues with the rtw88 PCIe wireless card when
> ASPM is enabled. Reported symptoms include frequent disconnections,
> kernel panics, and the driver failing to load.
>
> The issue can be worked around by either adding pci=noaspm to the
> kernel command line or by reloading the driver via modprobe. Add a
> DMI quirk to disable ASPM automatically for this device.
>
> Signed-off-by: Ata İlhan Köktürk <atailhan2006@gmail.com>
> ---
> drivers/net/wireless/realtek/rtw88/pci.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/drivers/net/wireless/realtek/rtw88/pci.c b/drivers/net/wireless/realtek/rtw88/pci.c
> index a30467228..9df8954d8 100644
> --- a/drivers/net/wireless/realtek/rtw88/pci.c
> +++ b/drivers/net/wireless/realtek/rtw88/pci.c
> @@ -1779,6 +1779,15 @@ 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 = "Lenovo IdeaPad S340-14IWL",
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
> + DMI_MATCH(DMI_PRODUCT_NAME, "81N4"),
> + },
> + .driver_data = (void *)(BIT(QUIRK_DIS_CAP_PCI_ASPM)),
Remove redundant parenthesis.
.driver_data = (void *)BIT(QUIRK_DIS_CAP_PCI_ASPM),
> + },
> {}
> };
>
> --
> 2.55.0
© 2016 - 2026 Red Hat, Inc.