From: hans.zhang@cixtech.com
To: bhelgaas@google.com
Cc: cix-kernel-upstream@cixtech.com, linux-pci@vger.kernel.org,
linux-kernel@vger.kernel.org, Hans Zhang <hans.zhang@cixtech.com>,
Peter Chen <peter.chen@cixtech.com>
Subject: [PATCH] PCI: Add PCI quirk to disable L0s ASPM state for RTL8125 2.5GbE Controller
Date: Wed, 5 Mar 2025 14:30:35 +0800 [thread overview]
Message-ID: <20250305063035.415717-1-hans.zhang@cixtech.com> (raw)
From: Hans Zhang <hans.zhang@cixtech.com>
This patch is intended to disable L0s ASPM link state for RTL8125 2.5GbE
Controller due to the fact that it is possible to corrupt TX data when
coming back out of L0s on some systems. This quirk uses the ASPM api to
prevent the ASPM subsystem from re-enabling the L0s state.
And it causes the following AER errors:
pcieport 0003:30:00.0: AER: Multiple Corrected error received: 0003:31:00.0
pcieport 0003:30:00.0: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Transmitter ID)
pcieport 0003:30:00.0: device [1f6c:0001] error status/mask=00001000/0000e000
pcieport 0003:30:00.0: [12] Timeout
r8125 0003:31:00.0: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Transmitter ID)
r8125 0003:31:00.0: device [10ec:8125] error status/mask=00001000/0000e000
r8125 0003:31:00.0: [12] Timeout
r8125 0003:31:00.0: AER: Error of this Agent is reported first
And the RTL8125 website does not say that it supports L0s. It only supports
L1 and L1ss.
RTL8125 website: https://www.realtek.com/Product/Index?id=3962
Signed-off-by: Hans Zhang <hans.zhang@cixtech.com>
Reviewed-by: Peter Chen <peter.chen@cixtech.com>
---
drivers/pci/quirks.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 82b21e34c545..5f69bb5ee3ff 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -2514,6 +2514,12 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10f1, quirk_disable_aspm_l0s);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10f4, quirk_disable_aspm_l0s);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1508, quirk_disable_aspm_l0s);
+/*
+ * The RTL8125 may experience data corruption issues when transitioning out
+ * of L0S. To prevent this we need to disable L0S on the PCIe link.
+ */
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_REALTEK, 0x8125, quirk_disable_aspm_l0s);
+
static void quirk_disable_aspm_l0s_l1(struct pci_dev *dev)
{
pci_info(dev, "Disabling ASPM L0s/L1\n");
base-commit: 99fa936e8e4f117d62f229003c9799686f74cebc
--
2.47.1
next reply other threads:[~2025-03-05 6:30 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-05 6:30 hans.zhang [this message]
2025-03-05 22:20 ` [PATCH] PCI: Add PCI quirk to disable L0s ASPM state for RTL8125 2.5GbE Controller Bjorn Helgaas
2025-03-06 3:16 ` hans.zhang
2025-03-06 3:32 ` hans.zhang
2025-03-06 16:28 ` Bjorn Helgaas
2025-03-07 1:38 ` hans.zhang
2025-03-06 23:00 ` Heiner Kallweit
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250305063035.415717-1-hans.zhang@cixtech.com \
--to=hans.zhang@cixtech.com \
--cc=bhelgaas@google.com \
--cc=cix-kernel-upstream@cixtech.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=peter.chen@cixtech.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox