From: Denis Benato <denis.benato@linux.dev>
To: linux-pci@vger.kernel.org
Cc: bhelgaas@google.com, linux-wireless@vger.kernel.org,
miriam.rachel.korenblit@intel.com, emmanuel.grumbach@intel.com,
linux-kernel@vger.kernel.org,
kernel@lists.opengamingcollective.org,
Denis Benato <denis.benato@linux.dev>
Subject: [PATCH 1/1] PCI: Disable D3cold for Killer BE200-family WiFi on MSI Claw A1M
Date: Sun, 25 Oct 2026 23:18:13 +0000 [thread overview]
Message-ID: <20261025231813.128649-2-denis.benato@linux.dev> (raw)
In-Reply-To: <20261025231813.128649-1-denis.benato@linux.dev>
During s2idle the platform removes power from the WiFi slot (D3cold).
The Killer BE1750 (Intel BE200, 8086:272b) installed in the MSI Claw A1M
fails to resume from that state: the PCIe link does not retrain
("pcieport 0000:00:1c.0: Data Link Layer Link Active not set in
100 msec") and every device register reads back as 0xffffffff, so the
card disappears from the bus and the machine must be power-cycled.
Keeping the device in D3hot with the link in L1.2 during system sleep
makes suspend and resume work reliably: the package still reaches >99%
S0ix residency and the card survives every cycle (verified over multiple
suspend/resume tests with an RTC-timed wake).
Disable D3cold for the BE200-family device on this board. This mirrors
the udev-level workaround distributions already ship for the AX200/AX210
(8086:2725), which suffers from the same class of problem, and moves it
into the kernel where it belongs.
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220223
Signed-off-by: Denis Benato <denis.benato@linux.dev>
---
drivers/pci/quirks.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 7572b358b50f..60156e6c3e49 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -6593,3 +6593,24 @@ static void pci_mask_replay_timer_timeout(struct pci_dev *pdev)
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_GLI, 0x9750, pci_mask_replay_timer_timeout);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_GLI, 0x9755, pci_mask_replay_timer_timeout);
#endif
+
+/*
+ * MSI Claw A1M: during s2idle the platform removes power from the WiFi slot
+ * (D3cold). The Killer BE1750 (Intel BE200, 8086:272b) fails to resume from
+ * that state: the PCIe link does not retrain ("Data Link Layer Link Active
+ * not set in 100 msec") and every device register reads back as 0xffffffff,
+ * so the card disappears from the bus and the machine must be power-cycled.
+ *
+ * Keeping the device in D3hot with the link in L1.2 during system sleep makes
+ * suspend and resume work reliably: the package still reaches >99% S0ix
+ * residency and the card survives.
+ */
+static void quirk_msi_claw_be200_d3cold(struct pci_dev *pdev)
+{
+ if (!dmi_match(DMI_BOARD_NAME, "MS-1T41"))
+ return;
+
+ pci_d3cold_disable(pdev);
+ pci_info(pdev, "disabling D3cold: slot power removal during s2idle prevents resume on this system");
+}
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x272b, quirk_msi_claw_be200_d3cold);
--
2.55.0
prev parent reply other threads:[~2026-10-25 23:18 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-25 23:18 [PATCH 0/1] " Denis Benato
2026-10-25 23:18 ` Denis Benato [this message]
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=20261025231813.128649-2-denis.benato@linux.dev \
--to=denis.benato@linux.dev \
--cc=bhelgaas@google.com \
--cc=emmanuel.grumbach@intel.com \
--cc=kernel@lists.opengamingcollective.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=miriam.rachel.korenblit@intel.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
all inboxes | Powered by JetHome®