Hibernate - Hibernation resume results in black screen - Radeon HD 7520G - radeon kernal driver
Brief summary of the problem:
Upon resuming from Hibernation, screen is black / no video. I am able to restore the screen if I perform two suspend cycles after hibernation resume. dmesg radeon shows multiple errors during Hibernation Resume and first suspend cycle after hibernation: ERROR displayport link status failed, clock recovery failed, clock recovery reached max voltage.
Issue is only with Hibernation. Suspend works OK with no error messages.
Hardware description:
- CPU: AMD A6-4400M
- GPU: 00:01.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Trinity 2 [Radeon HD 7520G] [1002:9990]
- Display(s): laptop lcd - Monitor-1: LVDS
- Type of Display Connection: LVDS laptop LCD
System information:
- Distro name and Version: MX Linux 21
- Kernel version: 5.10.0-19-amd64 [5.10.149-2] x86_64
- Custom kernel: <TODO: e.g., N/A or Kernel from amd-staging-drm-next >
- driver: radeon
How to reproduce the issue:
- Intstall MX Linux 21 on HP G6-2235us AMD A6-4400M
- Enable Hibernation - Kernel command Resume UUID Grub - Update Iinitramfs Resume
- Hibernate - Initiate Hibernation
- Press Power button to power on / resume
- Laptop powers up, splash screen visible, and after restore is complete, no video - black screen
- After hibernate resume black screen, if I suspend (close lid or power button set to suspend) and wake 2 cycles, video resumes
- I also installed Linux Mint 21 Cinnamon and same result. I've tried various kernel parameter and other suggested fixes and with no success
- dmesg radeon shows various errors:
- on resume from hibernate, ERROR displayport link status failed and clock recovery failed.
- first suspend cycle: ERROR clock recovery reached max voltage and clock recovery failed.
- second suspend cycle: no errors and resume is OK
Attached files:
Log files (for system lockups / game freezes / crashes)
Resume from Hibernate:
[ 91.543020] radeon 0000:00:01.0: WB enabled
[ 91.543024] radeon 0000:00:01.0: fence driver on ring 0 use gpu addr 0x0000000020000c00
[ 91.543403] radeon 0000:00:01.0: fence driver on ring 5 use gpu addr 0x0000000000075a18
[ 91.553515] radeon 0000:00:01.0: failed VCE resume (-22).
[ 91.553518] radeon 0000:00:01.0: fence driver on ring 1 use gpu addr 0x0000000020000c04
[ 91.553520] radeon 0000:00:01.0: fence driver on ring 2 use gpu addr 0x0000000020000c08
[ 91.553523] radeon 0000:00:01.0: fence driver on ring 3 use gpu addr 0x0000000020000c0c
[ 91.553525] radeon 0000:00:01.0: fence driver on ring 4 use gpu addr 0x0000000020000c10
[ 92.206856] radeon 0000:00:01.0: scheduling IB failed (-12).
[ 92.206894] [drm:radeon_vce_get_create_msg [radeon]] *ERROR* radeon: failed to schedule ib (-12).
[ 92.206922] [drm:radeon_vce_ib_test [radeon]] *ERROR* radeon: failed to get create msg (-12).
[ 92.206950] [drm:radeon_ib_ring_tests [radeon]] *ERROR* radeon: failed testing IB on ring 6 (-12).
[ 92.206953] radeon 0000:00:01.0: scheduling IB failed (-12).
[ 92.206979] [drm:radeon_vce_get_create_msg [radeon]] *ERROR* radeon: failed to schedule ib (-12).
[ 92.207005] [drm:radeon_vce_ib_test [radeon]] *ERROR* radeon: failed to get create msg (-12).
[ 92.207032] [drm:radeon_ib_ring_tests [radeon]] *ERROR* radeon: failed testing IB on ring 7 (-12).
[ 92.765001] [drm:radeon_dp_link_train [radeon]] *ERROR* displayport link status failed
[ 92.765030] [drm:radeon_dp_link_train [radeon]] *ERROR* clock recovery failed
[ 93.612281] [drm:radeon_dp_link_train [radeon]] *ERROR* displayport link status failed
[ 93.612310] [drm:radeon_dp_link_train [radeon]] *ERROR* clock recovery failed
After Hibernation black screen, first suspend cycle:
[ 111.181834] radeon 0000:00:01.0: WB enabled
[ 111.181837] radeon 0000:00:01.0: fence driver on ring 0 use gpu addr 0x0000000020000c00
[ 111.182231] radeon 0000:00:01.0: fence driver on ring 5 use gpu addr 0x0000000000075a18
[ 111.202322] radeon 0000:00:01.0: fence driver on ring 6 use gpu addr 0x0000000020000c18
[ 111.202324] radeon 0000:00:01.0: fence driver on ring 7 use gpu addr 0x0000000020000c1c
[ 111.202326] radeon 0000:00:01.0: fence driver on ring 1 use gpu addr 0x0000000020000c04
[ 111.202327] radeon 0000:00:01.0: fence driver on ring 2 use gpu addr 0x0000000020000c08
[ 111.202328] radeon 0000:00:01.0: fence driver on ring 3 use gpu addr 0x0000000020000c0c
[ 111.202330] radeon 0000:00:01.0: fence driver on ring 4 use gpu addr 0x0000000020000c10
[ 112.216389] [drm:radeon_dp_link_train [radeon]] *ERROR* clock recovery reached max voltage
[ 112.216418] [drm:radeon_dp_link_train [radeon]] *ERROR* clock recovery failed
[ 112.652001] [drm:radeon_dp_link_train [radeon]] *ERROR* clock recovery reached max voltage
[ 112.652029] [drm:radeon_dp_link_train [radeon]] *ERROR* clock recovery failed