Re: [PATCH v4] PCI: Disable ASPM L0s for Realtek RTS525A
Bjorn Helgaas <[email protected]>
| Newsgroups | org.kernel.vger.linux-pci,org.kernel.vger.linux-kernel,org.kernel.vger.stable |
|---|---|
| Message-ID | <20260811093944.GA605422@bhelgaas> |
On Tue, Jul 07, 2026 at 10:15:27AM +0800, Max Lee wrote: > The Realtek RTS525A PCIe card reader reports an AER Correctable Replay > Timer Timeout storm when ASPM L0s is enabled on its link. On an affected > HP ZBook Power 16 inch G11, the Root Port received tens of millions of > AER interrupts from the RTS525A even when the rtsx_pci driver was > blacklisted and the endpoint was not enabled by a driver. > > For example: > > pcieport 0000:00:1c.6: AER: Multiple Correctable error message received from 0000:58:00.0 > rtsx_pci 0000:58:00.0: PCIe Bus Error: severity=Correctable, type=Data Link Layer, (Transmitter ID) > rtsx_pci 0000:58:00.0: device [10ec:525a] error status/mask=00001000/00006000 > rtsx_pci 0000:58:00.0: [12] Timeout > pcieport 0000:00:1c.6: AER: Correctable error message received from 0000:58:00.0 > > Testing with OS-native AER control showed that disabling only L0s on the > RTS525A link stops new AER interrupt and counter growth while leaving L1 > enabled. Disabling L1, L1 substates, or Clock PM alone did not stop the > storm. > > Prevent the broken L0s configuration by removing L0s from the RTS525A > advertised ASPM capability. This avoids enabling the non-working ASPM > state instead of masking the resulting AER Replay Timer Timeout reports. > > Reviewed-by: Lukas Wunner <[email protected]> > Reviewed-by: Manivannan Sadhasivam <[email protected]> > Cc: [email protected] > Signed-off-by: Max Lee <[email protected]> Applied to pci/aspm for v7.3, thanks! > --- > Changes in v4: > - Add an AER log snippet to make the quirk easier to find. > - Reword the RTS525A comment to describe this as a Replay Timer Timeout storm. > - Add Reviewed-by tags from Lukas Wunner and Manivannan Sadhasivam. > - Add Cc stable tag as suggested by Lukas Wunner. > > drivers/pci/quirks.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c > index caaed1a01dc0..ab94bd7f3a34 100644 > --- a/drivers/pci/quirks.c > +++ b/drivers/pci/quirks.c > @@ -2520,6 +2520,9 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x10f1, quirk_disable_aspm_l0s); > DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x10f4, quirk_disable_aspm_l0s); > DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1508, quirk_disable_aspm_l0s); > > +/* Realtek RTS525A generates a Replay Timer Timeout storm when L0s is enabled. */ > +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_REALTEK, 0x525a, quirk_disable_aspm_l0s); > + > static void quirk_disable_aspm_l0s_l1(struct pci_dev *dev) > { > pcie_aspm_remove_cap(dev, > -- > 2.43.0 >