From: sashiko-bot@kernel.org
To: "Kean Ren" <rh_king@163.com>
Cc: linux-pci@vger.kernel.org
Subject: Re: [PATCH] PCI: Disable spurious s2idle wake from the NVMe root port on ThinkPad P1 Gen 9
Date: Fri, 13 Nov 2026 02:12:30 +0000 [thread overview]
Message-ID: <sashiko-outbox-212080@kernel.org> (raw)
In-Reply-To: <20261113014824.2396883-1-rh_king@163.com>
Thank you for your contribution! Sashiko AI review found 1 potential
issue to consider:
- [Medium] PCI: p1g9_rp05_wakeup_dmi matches single SKU 21UFZE0PCN
instead of 21UF model
--
commit 75de6a519b5eeaae2e4b61c8891c8afd3aa3c727
Author: Kean Ren <rh_king@163.com>
PCI: Disable spurious s2idle wake from the NVMe root port on ThinkPad P1 Gen 9
This commit adds a DMI-based PCI quirk to disable ACPI wakeup on PCIe root
port 00:1c.4 on the Lenovo ThinkPad P1 Gen 9 (21UF) to prevent spurious
PMEs from aborting s2idle suspend.
> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index f7cd4149f8130..ead7a6c456986 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -6610,3 +6610,55 @@ 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
> +
> +/*
> + * Lenovo ThinkPad P1 Gen 9 (21UF): the firmware enables the ACPI wake
> + * capability of PCIe root port 00:1c.4, which is the root port of the
> + * primary NVMe SSD. When the NVMe controller is put into D3 during
> + * system suspend, a spurious PME is raised on that root port, which in
> + * turn fires ACPI GPE 0x6F (SCI) and aborts s2idle before the system
> + * reaches the low-power state. The NVMe device itself is not a wake
> + * source (its own ACPI wake is disabled), so disable the root port's
> + * wake capability as well.
> + *
> + * No firmware with a fix is available: the issue reproduces with BIOS
> + * N4SET31W (1.10) and N4SET32W (1.11), the latest version at the time
> + * of writing. Match the model only; if a fixed BIOS is released later,
> + * this quirk can be removed or restricted to the affected BIOS
> + * versions.
> + */
> +static const struct dmi_system_id p1g9_rp05_wakeup_dmi[] __initconst = {
> + {
> + .ident = "Lenovo ThinkPad P1 Gen 9 (21UF)",
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
> + DMI_MATCH(DMI_PRODUCT_NAME, "21UFZE0PCN"),
> + },
> + },
> + { }
> +};
[Severity: Medium]
Should p1g9_rp05_wakeup_dmi match "21UF" instead of "21UFZE0PCN"?
On Lenovo ThinkPads, DMI_PRODUCT_NAME holds the 10-character Machine Type
Model string, where the first four characters ("21UF") identify the model
and the remaining six ("ZE0PCN") identify a specific factory configuration
and regional SKU. Matching the full "21UFZE0PCN" string leaves the quirk
inactive on all other 21UF configurations running the same BIOS, so s2idle
suspend will still abort on those machines.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261113014824.2396883-1-rh_king@163.com?part=1
prev parent reply other threads:[~2026-11-13 2:12 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-13 1:48 [PATCH] PCI: Disable spurious s2idle wake from the NVMe root port on ThinkPad P1 Gen 9 Kean Ren
2026-11-13 2:12 ` sashiko-bot [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=sashiko-outbox-212080@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=rh_king@163.com \
--cc=sashiko-reviews@lists.linux.dev \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.