supergfxd deadlocks in D-state after switching to Integrated mode — ASUS TUF DASH F15, Fedora 43, RTX 3050 [HELP]
Body:
Hey everyone, I've been fighting a persistent GPU switching deadlock on my ASUS ROG laptop for a while now and I can't find a permanent fix. Hoping someone here has dealt with this exact situation.
System specs:
- CPU: Intel Core i5-12450H
- GPU: NVIDIA RTX 3050 Mobile (4GB) + Intel Xe integrated
- OS: Fedora 43 KDE Plasma 6.6.4, Wayland
- Kernel: 7.0.9-102.fc43.x86_64 (64-bit)
- supergfxctl: 5.2.7
- asusctl installed
- ASUS MUX switch capable laptop
- Fully Linux-only, no Windows, UEFI, BTRFS
The problem:
Switching from AsusMuxDgpu → Integrated mode causes supergfxd to enter an uninterruptible D-state (kernel-level freeze). After reboot into Integrated mode, any supergfxctl command including --get and even --version hangs indefinitely and must be Ctrl+C'd. kill -9 does nothing because the process is in D-state. Even can’t shutdown the laptop, have to force shutdown with the physical powerkey.
Exact error from journalctl:
[ERROR supergfxctl::controller] Action thread errored:
Modprobe error: rmmod nvidia_drm failed:
"rmmod: ERROR: Module nvidia_drm is in use"
What the logs show:
nvidia_drmuse count shows 0 inlsmodbut supergfxd still can't unload it- dGPU stays at D0 / runtime active even after switching to Integrated
/sys/bus/pci/slots/1/powerstays at 1 (dGPU never powers off)- supergfxd misidentifies RTX 3050 (10DE:25A2) as iGPU in some boot cycles
- D-Bus config has
group="sudo"which is invalid on Fedora (should bewheel)
What I've already tried:
- Full removal and reinstallation of supergfxctl + asusctl multiple times
- Removed
nvidia-drm.modeset=1from GRUB cmdline and rebuilt grub - Added restart drop-in to supergfxd.service
- Set
always_reboot: trueandhotplug_type: Stdin supergfxd.conf - Fixed dbus group sudo → wheel
- Rebuilt initramfs with nvidia omitted via dracut
- Tried envycontrol as replacement — GPU Switching doesn't work at all.
- Tested on kernel 6.19.x as well, same behavior
What I suspect:
supergfxd 5.2.7 has no timeout or retry logic when rmmod nvidia_drm fails. Instead of recovering gracefully it freezes the action thread permanently. Combined with the dGPU never actually powering off at the PCI hotplug level, the daemon enters D-state and becomes unkillable across reboots.
This may be specific to Alder Lake + GA107 (RTX 3050 Mobile) + ASUS MUX hardware combination.
Questions:
- Has anyone successfully resolved supergfxd deadlocks on similar hardware?
- Is there a way to force PCI hotplug power-off of the dGPU independently of supergfxd?
- Any known workarounds specific to supergfxctl 5.2.7 on Fedora?
Fedora has never been this unstable for me before. I’m genuinely stuck at this point and would really appreciate any help in diagnosing the issue. I’m happy to provide additional logs, system details, or test anything needed to troubleshoot it properly 🙏