Re: [PATCH v2] pci: Add broken-GPE quirk for Lenovo Legion 16APH8 and 16AHP9 Nvidia GPUs

From: Ryan Brue

Date: Sat Sep 12 2026 - 17:46:56 EST


On 8/21/26 3:04 PM, Lyude Paul wrote:
On the Lenovo Legion Slim 5 16APH8 and 16AHP9, the firmware appears to enjoy
firing a GPE on the parent PCIe port of the nvidia GPU very shortly after the
GPU enters D3Cold. This means that every time the GPU is runtime suspended,
ACPI firmware immediately wakes up its parent PCIe port, which then wakes up
the GPU. Once it falls asleep again, the cycle repeats.

See: https://github.com/NVIDIA/open-gpu-kernel-modules/issues/905

Note, this bug doesn't require Nvidia's driver. It happens on nouveau and
nova as well, and it even seems possible for this to happen without any
driver loaded.

This seems to simply be a bug. Luckily, there is nothing that we actually
need ACPI wakeup events for on the GPU. Events such as display connector
hotplug events in D3Cold come through as ACPI_VIDEO events which aren't
affected by this quirk.

Reported-by: Ryan Brue <ryanbrue.dev@xxxxxxxxx>
Co-authored-by: Ryan Brue <ryanbrue.dev@xxxxxxxxx>
Signed-off-by: Lyude Paul <lyude@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Fixes: https://github.com/NVIDIA/open-gpu-kernel-modules/issues/905

---
V2:
* Don't forget to actually use parent_adev with acpi_remove_pm_notifier()
* Check if parent_adev is NULL (could happen if booted with acpi=off), just
consider it a no-op if it is.
* Base the patch off Linux master instead, I based it off drm-misc-next by
mistake because I'm too used to working on DRM drivers :).

drivers/pci/quirks.c | 79 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 79 insertions(+)
FWIW, this has been tested by me, with positive results, on my Lenovo Legion Slim 5 16APH8. Not sure if this warrants a Tested-by trailer since I'm a co-author, but just in case.

In the thread [1], we have had another user report positive results on their 16AHP9 (note that Lenovo seems to have switched the P and the H around for the laptop one generation up for some reason). Said user tested on both OpenRM and nouveau on top of kernel 7.1.10.

This means we have tested 16APH8 on nouveau, and 16AHP9 on both OpenRM and nouveau.

[1] https://github.com/NVIDIA/open-gpu-kernel-modules/issues/905#issuecomment-5444071160