Laptop with external monitor wakes up immediately after suspend

I use Fedora 38 Workstation on an ASUS ROG Zephyrus G15 with an Nvidia 3060. When I just used the laptop screen, suspend and resume worked perfectly fine. But I recently got a Gigabyte M32UC external monitor that I use alongside my laptop screen. Ever since I started using it, my laptop wakes up immediately after suspend. Suspend initially seems to work and both screens turn off, but then the laptop automatically wakes up from suspend. I have tried disabling all the enabled entries in /proc/acpi/wakeup but that does not seem to do anything to fix the problem.

Here is some additional information that might help:

Output of uname -a:

Linux fedora 6.4.10-200.fc38.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Aug 11 12:20:29 UTC 2023 x86_64 GNU/Linux

Output of lscpu:

Architecture:            x86_64
  CPU op-mode(s):        32-bit, 64-bit
  Address sizes:         48 bits physical, 48 bits virtual
  Byte Order:            Little Endian
CPU(s):                  16
  On-line CPU(s) list:   0-15
Vendor ID:               AuthenticAMD
  Model name:            AMD Ryzen 7 6800HS with Radeon Graphics
    CPU family:          25
    Model:               68
    Thread(s) per core:  2
    Core(s) per socket:  8
    Socket(s):           1
    Stepping:            1
    Frequency boost:     enabled
    CPU(s) scaling MHz:  42%
    CPU max MHz:         4784.3750
    CPU min MHz:         1600.0000
    BogoMIPS:            6388.16
    Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse ss
                         e2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid
                          extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe po
                         pcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 
                         3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx 
                         cpb cat_l3 cdp_l3 hw_pstate ssbd mba ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 invpc
                         id cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_
                         occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbr
                         v svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avi
                         c v_vmsave_vmload vgif v_spec_ctrl umip pku ospke vaes vpclmulqdq rdpid overflow_recov succor s
                         mca
Virtualization features: 
  Virtualization:        AMD-V
Caches (sum of all):     
  L1d:                   256 KiB (8 instances)
  L1i:                   256 KiB (8 instances)
  L2:                    4 MiB (8 instances)
  L3:                    16 MiB (1 instance)
NUMA:                    
  NUMA node(s):          1
  NUMA node0 CPU(s):     0-15
Vulnerabilities:         
  Gather data sampling:  Not affected
  Itlb multihit:         Not affected
  L1tf:                  Not affected
  Mds:                   Not affected
  Meltdown:              Not affected
  Mmio stale data:       Not affected
  Retbleed:              Not affected
  Spec rstack overflow:  Mitigation; safe RET, no microcode
  Spec store bypass:     Mitigation; Speculative Store Bypass disabled via prctl
  Spectre v1:            Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2:            Mitigation; Retpolines, IBPB conditional, IBRS_FW, STIBP always-on, RSB filling, PBRSB-eIBRS No
                         t affected
  Srbds:                 Not affected
  Tsx async abort:       Not affected

Output of sudo lshw -C display:

  *-display                 
       description: VGA compatible controller
       product: GA106M [GeForce RTX 3060 Mobile / Max-Q]
       vendor: NVIDIA Corporation
       physical id: 0
       bus info: pci@0000:01:00.0
       logical name: /dev/fb0
       version: a1
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress vga_controller bus_master cap_list rom fb
       configuration: depth=32 driver=nvidia latency=0 mode=2560x1440 visual=truecolor xres=2560 yres=1440
       resources: iomemory:fc0-fbf iomemory:fe0-fdf irq:117 memory:fb000000-fbffffff memory:fc00000000-fdffffffff memory:fe00000000-fe01ffffff ioport:f000(size=128) memory:fc000000-fc07ffff
  *-display
       description: VGA compatible controller
       product: Rembrandt [Radeon 680M]
       vendor: Advanced Micro Devices, Inc. [AMD/ATI]
       physical id: 0
       bus info: pci@0000:06:00.0
       logical name: /dev/fb0
       version: c8
       width: 64 bits
       clock: 33MHz
       capabilities: pm pciexpress msi msix vga_controller bus_master cap_list fb
       configuration: depth=32 driver=amdgpu latency=0 resolution=2560,1440
       resources: iomemory:fe0-fdf iomemory:fe0-fdf irq:51 memory:fe10000000-fe1fffffff memory:fe20000000-fe201fffff ioport:d000(size=256) memory:fc500000-fc57ffff

Hi there!
I have a ROG STRIX G15 (2022) laptop with AMD 6800H and NVidia 3060 and have the same behavior. External Display is connected via HDMI. If no External Display is connected, suspend works perfectly! I supposed that issue was with active dGPU (in my laptop HDMI activates dGPU), but if I run any game / app via dGPU (i have active dGPU status) and disconnect External Display, suspend works.
In journalctl I have no errors.

Some info:

$lscpu 
Architecture:            x86_64
  CPU op-mode(s):        32-bit, 64-bit
  Address sizes:         48 bits physical, 48 bits virtual
  Byte Order:            Little Endian
CPU(s):                  16
  On-line CPU(s) list:   0-15
Vendor ID:               AuthenticAMD
  Model name:            AMD Ryzen 7 6800H with Radeon Graphics
    CPU family:          25
    Model:               68
    Thread(s) per core:  2
    Core(s) per socket:  8
    Socket(s):           1
    Stepping:            1
    Frequency boost:     disabled
    CPU(s) scaling MHz:  31%
    CPU max MHz:         4784,3750
    CPU min MHz:         1600,0000
    BogoMIPS:            6388,05
    Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse ss
                         e2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid
                          extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe po
                         pcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 
                         3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx 
                         cpb cat_l3 cdp_l3 hw_pstate ssbd mba ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 erms 
                         invpcid cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc
                          cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr rdpru wbnoinvd cppc arat np
                         t lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshol
                         d avic v_vmsave_vmload vgif v_spec_ctrl umip pku ospke vaes vpclmulqdq rdpid overflow_recov suc
                         cor smca fsrm
Virtualization features: 
  Virtualization:        AMD-V
Caches (sum of all):     
  L1d:                   256 KiB (8 instances)
  L1i:                   256 KiB (8 instances)
  L2:                    4 MiB (8 instances)
  L3:                    16 MiB (1 instance)
NUMA:                    
  NUMA node(s):          1
  NUMA node0 CPU(s):     0-15
Vulnerabilities:         
  Gather data sampling:  Not affected
  Itlb multihit:         Not affected
  L1tf:                  Not affected
  Mds:                   Not affected
  Meltdown:              Not affected
  Mmio stale data:       Not affected
  Retbleed:              Not affected
  Spec rstack overflow:  Mitigation; safe RET, no microcode
  Spec store bypass:     Mitigation; Speculative Store Bypass disabled via prctl
  Spectre v1:            Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2:            Mitigation; Retpolines, IBPB conditional, IBRS_FW, STIBP always-on, RSB filling, PBRSB-eIBRS No
                         t affected
  Srbds:                 Not affected
  Tsx async abort:       Not affected
$sudo lshw -C display
  *-display                 
       description: VGA compatible controller
       product: GA106M [GeForce RTX 3060 Mobile / Max-Q]
       vendor: NVIDIA Corporation
       physical id: 0
       bus info: pci@0000:01:00.0
       logical name: /dev/fb0
       version: a1
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress vga_controller bus_master cap_list rom fb
       configuration: depth=32 driver=nvidia latency=0 mode=2560x1440 visual=truecolor xres=2560 yres=1440
       resources: iomemory:7c0-7bf iomemory:7e0-7df irq:77 memory:fb000000-fbffffff memory:7c00000000-7dffffffff memory:7e00000000-7e01ffffff ioport:f000(size=128) memory:fc000000-fc07ffff
  *-display
       description: VGA compatible controller
       product: Rembrandt [Radeon 680M]
       vendor: Advanced Micro Devices, Inc. [AMD/ATI]
       physical id: 0
       bus info: pci@0000:05:00.0
       logical name: /dev/fb0
       version: c8
       width: 64 bits
       clock: 33MHz
       capabilities: pm pciexpress msi msix vga_controller bus_master cap_list fb
       configuration: depth=32 driver=amdgpu latency=0 resolution=2560,1440
       resources: iomemory:7e0-7df iomemory:7e0-7df irq:41 memory:7e10000000-7e1fffffff memory:7e20000000-7e201fffff ioport:d000(size=256) memory:fc500000-fc57ffff
$cat /proc/acpi/wakeup
Device	S-state	  Status   Sysfs node
GPP7	  S0	*enabled   pci:0000:00:02.3
GP11	  S0	*disabled
SWUS	  S4	*disabled
GP12	  S0	*disabled
SWUS	  S4	*disabled
XHC0	  S4	*enabled   pci:0000:05:00.3
XHC1	  S4	*enabled   pci:0000:05:00.4
XHC2	  S4	*enabled   pci:0000:06:00.0
XHC3	  S4	*enabled   pci:0000:06:00.3
XHC4	  S4	*enabled   pci:0000:06:00.4
NHI0	  S0	*disabled
NHI1	  S0	*disabled
GPP0	  S4	*enabled   pci:0000:00:01.1
GPP5	  S0	*enabled   pci:0000:00:02.1
$uname -a
Linux Raim-PC 6.4.10-200.fc38.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Aug 11 12:20:29 UTC 2023 x86_64 GNU/Linux

p.s. I bought a Dock-station to try connecting an External Display via DIsplayPort. I will report back soon.

Edited: I have Wayland session. Tried Xorg - same issue.

1 Like

Hi there again!

As I said, I bought dock-station (with HDMI) and connect my External Display via it. And a suspend works as expected!

p.s. a DisplayPort connects to a dGPU, so I can’t figure out why issue is with a HDMI (which connects to a dGPU too)

1 Like

Interesting. I can’t try out DisplayPort because my laptop doesn’t have a DisplayPort port and I don’t really have any USB-C to DisplayPort cables either. But yes, the issue does seem to be HDMI related.

Yes, it’s interesting. Waiting for a response from Fedora officials or knowledgeable people.

Switching to DisplayPort fixed this issue for me, so I can confirm that this issue only occurs only when using HDMI.