-
Notifications
You must be signed in to change notification settings - Fork 88
Description
Describe the bug
After switching to integrated mode with EnvyControl, the NVIDIA dGPU is correctly disabled at boot. However, after suspend/resume, the BIOS re‑enumerates the NVIDIA GPU and exposes it to the kernel again. This leaves the device in a “zombie” state (present in PCI tree, but unbound to any driver), which wastes power and can cause instability.
To Reproduce
Steps to reproduce the behavior:
- Run
sudo envycontrol -s integrated - Reboot → dGPU is disabled (not visible in
lspci, renderer is AMD iGPU). - Suspend the system.
- Resume → kernel logs show NVIDIA PCI devices (
0000:01:00.0and0000:01:00.1) being re‑added. - dGPU remains unbound, but present in PCI tree.
Expected behavior
The dGPU should remain disabled after suspend/resume, with no PCI re‑enumeration. EnvyControl should either:
- Automatically remove the device again after resume, or
- Bind it to a safe driver (e.g. Nouveau) to prevent unmanaged zombie state.
System Information:
- Model: ASUS TUF Gaming A15 FA507UV
- Distro: Fedora Linux 43 (GNOME, previously KDE Plasma)
- Kernel:
6.17.11-300.fc43.x86_64 - DE/WM and Display Manager: GNOME 45 with GDM
- EnvyControl version: 3.5.2
- Nvidia driver version: None installed (no matching packages in
dnf list installed | grep nvidia) - lspci output (before suspend):
(no NVIDIA devices listed) - lspci output (after suspend/resume):
pci 0000:01:00.0: [10de:28e0] VGA compatible controller pci 0000:01:00.1: [10de:22be] Audio device - Kernel logs (after resume):
pcieport 0000:00:01.1: Slot(0): Card present pci 0000:01:00.0: [10de:28e0] type 00 class 0x030000 PCIe Legacy Endpoint pci 0000:01:00.1: [10de:22be] type 00 class 0x040300 PCIe Endpoint input: HDA NVidia HDMI/DP,pcm=3 ...
Screenshot: Basically I closed my laptop lid DURING integrated mode to check ZOMBIE dgpu wake up
Additional context
glxinfoconfirms AMD Radeon 780M iGPU is the active renderer.lspcishows no NVIDIA device before suspend, but devices reappear after resume.journalctl -klogs confirm PCI hotplug events for NVIDIA GPU/audio controller after resume.- Workarounds tested: binding to Nouveau (safe hold) vs. systemd sleep hook to auto‑remove PCI device.
Suggested fix
Add a systemd sleep hook in EnvyControl that automatically re‑removes the dGPU after resume, or provide an option to bind it to Nouveau for safe handling of BIOS wakeups.