I’m using the ASUS TUF A16 which comes with AMD Radeon RX 7700S dedicated GPU, and an integrated Radeon 680M. It manages them through a MUX switcher in the laptop, with the only option to run dedicated-gpu only in the boot menu.
I’m on KDE-fedora, but I have replicated the problem on multiple distros and desktop environments.
The problem I’m having is that the laptop goes to sleep and immediately wakes up when my external monitor is plugged in. I’ve done some research and troubleshooting, and I’ve come to think the cause is that the external GPU restarts whenever it goes to sleep with the external monitor on, possibly related to AMD’s MUX switch, but that’s just speculation. I assume this is because the hdmi is run by the dgpu, and doesn’t work with the igpu, but how to fix it has proven so far to be out of my league.
This is the last minute of journalctl log after suspension:
I also came across a python script which helps identify sleep problems, and this is the result (I’m gonna cut to the main line as the log is full of emojis and I want to spare you that):
2024-12-31 12:25:21,494 INFO: Suspend count: 1
2024-12-31 12:25:21,494 INFO: ○ GPIOs active: ['29', '29', '29', '29', '29', '29', '29']
2024-12-31 12:25:21,494 INFO: Wakeup triggered from IRQ 7: GPIO Controller
2024-12-31 12:25:21,494 DEBUG: Used Microsoft uPEP GUID in LPS0 _DSM
2024-12-31 12:25:21,494 INFO: Woke up from IRQ 7: GPIO Controller
2024-12-31 12:25:21,495 DEBUG: ACPI Lid (/proc/acpi/button/lid/LID0/state): closed
2024-12-31 12:25:21,495 ERROR: ❌ Userspace suspended for 0:00:04.616088 (< minimum expected 0:00:09)
2024-12-31 12:25:21,496 ERROR: ❌ Did not reach hardware sleep state
So, I assume this has to do with the GPU, as unplugging the hdmi let’s the laptop sleep, and it’s triggered by IRQ7
. I have found that IRQ7
is pinctrl_amd
, so I’m not sure it’s the responsible part, as it’s a general-purpose GPIO driver as far as I know. /sys/kernel/irq/7/wakeup
is enabled but I’m not sure it would be a good idea to disable it, and I have not even been able to find where to disable it for a test.
Some of the things I have tried:
- Disabled wakeup for the gpu drivers (only one of the cards seems to have the wakeup file though)
- Disabled everything on
/proc/acpi/wakeup
- Disabled wake up capability from every device with powertop
- Tried the kernel parameters
amdgpu.runpm=1
(default is 0),amdgpu.dpm=1
(-1 default),amdgpu.bapm=1
(-1 default),acpi.ec_no_wakeup=1
(default 0)