Monitor wont wake from Suspend | AMD GPU | Thinkpad

I am also having this problem, with a ThinkPad, Radeon 780M chipset, via HDMI port. When it goes to sleep, the laptop screen wakes up but the external monitor doesn’t. Today unplugging it and plugging it back in wakes up the monitor, but hasn’t always.

Welcome to :fedora:

Could you provide the output of inxi -Fzxx in </> preformatted text here:
2024-05-06_12-15-49_Preformatted_Text

If you can consistently reproduce the issue can you provide the output of :

journalctl | grep -i 'suspend\|resume'

inxi

System:
  Kernel: 6.9.12-200.fc40.x86_64 arch: x86_64 bits: 64 compiler: gcc
    v: 2.41-37.fc40
  Desktop: GNOME v: 46.3.1 tk: GTK v: 3.24.43 wm: gnome-shell dm: GDM
    Distro: Fedora Linux 40 (Workstation Edition)
Machine:
  Type: Laptop System: LENOVO product: 21K5000TUS v: ThinkPad P14s Gen 4
    serial: <superuser required> Chassis: type: 10 serial: <superuser required>
  Mobo: LENOVO model: 21K5000TUS v: SDK0T76530 WIN
    serial: <superuser required> part-nu: LENOVO_MT_21K5_BU_Think_FM_ThinkPad
    P14s Gen 4 UEFI: LENOVO v: R2FET57W (1.37 ) date: 05/20/2024
Battery:
  ID-1: BAT0 charge: 54.5 Wh (99.8%) condition: 54.6/52.5 Wh (104.0%)
    volts: 17.7 min: 15.4 model: Celxpert 5B11M90028 serial: <filter>
    status: full
CPU:
  Info: 8-core model: AMD Ryzen 7 PRO 7840U w/ Radeon 780M Graphics bits: 64
    type: MT MCP arch: Zen 4 rev: 1 cache: L1: 512 KiB L2: 8 MiB L3: 16 MiB
  Speed (MHz): avg: 874 high: 2832 min/max: 400/5132 cores: 1: 400 2: 400
    3: 400 4: 2832 5: 400 6: 1926 7: 2045 8: 400 9: 400 10: 400 11: 1397 12: 400
    13: 400 14: 400 15: 400 16: 1397 bogomips: 105396
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
Graphics:
  Device-1: AMD Phoenix1 vendor: Lenovo driver: amdgpu v: kernel arch: RDNA-3
    pcie: speed: 16 GT/s lanes: 16 ports: active: HDMI-A-1,eDP-1 empty: DP-1,
    DP-2, DP-3, DP-4, DP-5, DP-6, Writeback-1 bus-ID: 64:00.0
    chip-ID: 1002:15bf temp: 40.0 C
  Device-2: Chicony Integrated Camera driver: uvcvideo type: USB rev: 2.0
    speed: 480 Mb/s lanes: 1 bus-ID: 3-1:2 chip-ID: 04f2:b7c0
  Display: wayland server: X.org v: 1.20.14 with: Xwayland v: 24.1.1
    compositor: gnome-shell driver: gpu: amdgpu display-ID: 0
  Monitor-1: HDMI-A-1 model: HP Z27 res: 3840x2160 dpi: 163
    diag: 685mm (27")
  Monitor-2: eDP-1 model: Samsung 0x4193 res: 2880x1800 dpi: 242
    diag: 356mm (14")
  API: OpenGL v: 4.6 vendor: amd mesa v: 24.1.5 glx-v: 1.4 es-v: 3.2
    direct-render: yes renderer: AMD Radeon 780M (radeonsi gfx1103_r1 LLVM
    18.1.6 DRM 3.57 6.9.12-200.fc40.x86_64) device-ID: 1002:15bf
    display-ID: :0.0
  API: EGL Message: EGL data requires eglinfo. Check --recommends.
Audio:
  Device-1: AMD Rembrandt Radeon High Definition Audio vendor: Lenovo
    driver: snd_hda_intel v: kernel pcie: speed: 16 GT/s lanes: 16
    bus-ID: 64:00.1 chip-ID: 1002:1640
  Device-2: AMD ACP/ACP3X/ACP6x Audio Coprocessor vendor: Lenovo
    driver: snd_pci_ps v: kernel pcie: speed: 16 GT/s lanes: 16 bus-ID: 64:00.5
    chip-ID: 1022:15e2
  Device-3: AMD Family 17h/19h HD Audio vendor: Lenovo driver: snd_hda_intel
    v: kernel pcie: speed: 16 GT/s lanes: 16 bus-ID: 64:00.6 chip-ID: 1022:15e3
  API: ALSA v: k6.9.12-200.fc40.x86_64 status: kernel-api
  Server-1: JACK v: 1.9.22 status: off
  Server-2: PipeWire v: 1.0.7 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
Network:
  Device-1: Realtek RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet
    vendor: Lenovo driver: r8169 v: kernel pcie: speed: 2.5 GT/s lanes: 1
    port: 6000 bus-ID: 01:00.0 chip-ID: 10ec:8168
  IF: enp1s0f0 state: down mac: <filter>
  Device-2: Qualcomm QCNFA765 Wireless Network Adapter vendor: Lenovo
    driver: ath11k_pci v: kernel pcie: speed: 8 GT/s lanes: 1 bus-ID: 02:00.0
    chip-ID: 17cb:1103
  IF: wlp2s0 state: up mac: <filter>
Bluetooth:
  Device-1: USI driver: btusb v: 0.8 type: USB rev: 1.1 speed: 12 Mb/s
    lanes: 1 bus-ID: 1-3.1:5 chip-ID: 10ab:9309
  Report: btmgmt ID: hci0 rfk-id: 1 state: up address: <filter> bt-v: 5.3
    lmp-v: 12
Drives:
  Local Storage: total: 953.87 GiB used: 251.17 GiB (26.3%)
  ID-1: /dev/nvme0n1 vendor: SK Hynix model: HFS001TEJ9X162N
    size: 953.87 GiB speed: 63.2 Gb/s lanes: 4 serial: <filter> temp: 41.9 C
Partition:
  ID-1: / size: 952.27 GiB used: 250.76 GiB (26.3%) fs: btrfs dev: /dev/dm-0
    mapped: luks-9d79c19d-5a04-4ccb-a2b3-7cbb350b0eb9
  ID-2: /boot size: 973.4 MiB used: 405.9 MiB (41.7%) fs: ext4
    dev: /dev/nvme0n1p2
  ID-3: /boot/efi size: 598.8 MiB used: 19.1 MiB (3.2%) fs: vfat
    dev: /dev/nvme0n1p1
  ID-4: /home size: 952.27 GiB used: 250.76 GiB (26.3%) fs: btrfs
    dev: /dev/dm-0 mapped: luks-9d79c19d-5a04-4ccb-a2b3-7cbb350b0eb9
Swap:
  ID-1: swap-1 type: zram size: 8 GiB used: 0 KiB (0.0%) priority: 100
    dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 43.0 C mobo: N/A
  Fan Speeds (rpm): fan-1: 0 fan-2: 0
Info:
  Memory: total: 60 GiB available: 58.5 GiB used: 6.37 GiB (10.9%)
  Processes: 471 Power: uptime: 4h 49m wakeups: 2 Init: systemd v: 255
    target: graphical (5) default: graphical
  Packages: pm: flatpak pkgs: 10 Compilers: gcc: 14.2.1 Shell: Bash
    v: 5.2.26 running-in: gnome-terminal inxi: 3.3.34

Could you please try an older kernel version? You should have 3 available.

If you do not know how to do this, Here is a quick guide

Since you should have Grub, refer to that section. Report back if the issue persists.

This issue seemed to go away with future kernel versions.

for me, it got much better, but did not go away. Now it happens maybe 1/100 times. Still very annoying when it does, I have to power off my pc and reboot, loosing anything unsaved. But not near the problem it was.

I had this on Windows with a HD 7850 years ago; I think I resolved it by forcing always-3D clocks, implying it could be a low-power-state that’s causing the monitor not to reinitialize.

Reading the linked report reminded me of VRAM also being odd on that GPU (it fluctuating and causing multi-monitor issues), which I recall being distinctly linked to other issues.


Something like this should force high-perf clocks and serve as a quick-test:

echo 'manual' | sudo tee '/sys/class/drm/card'*'/device/power_dpm_force_performance_level'
echo '1' | sudo tee '/sys/class/drm/card'*'/device/pp_power_profile_mode'

I used that to workaround https://gitlab.freedesktop.org/drm/amd/-/issues/1500