AMDGPU - Screen freezes when waking from S4 (Hibernation)
Brief summary of the problem:
I have a lenovo yoga slim 7 prox 14ARH7, I'm dual booting the machine with arch and windows. Im having issues making hibernation work under Arch.
I have the Ryzen 7 6800HS with integrated AMD Radeon 680M Graphics
Window's suspend and hibernation works Arch suspend works fine
Behavior under Arch: The machine hibernates without any issues. At power up, I see Lenovo logo, I see the usual startup of arch (loading ram... and stuff) Then I see a text pointer at the top left blinking for 5 secs, then the screen goes black. I believe the machine still runs fine I can toggle leds on the keyboard for specials keys after the black screen.
I compiled the lastest Linux Kernel from the mainline available on the AUR. (6.0rc5-1)
I found out that when I wake from hibernation and the screen is black if I switch to an other TTY it refreshes the screen and I get the picture back. I can then switch back to TTY1 and the hibernation is completed. Everything seems to be in working order.
By looking at the journal I can see these errors:
Sep 20 21:39:30 kfe-mk3r kernel: amdgpu 0000:04:00.0: amdgpu: RAS: optional ras ta ucode is not available
Sep 20 21:39:30 kfe-mk3r kernel: amdgpu 0000:04:00.0: amdgpu: RAP: optional rap ta ucode is not available
Sep 20 21:39:30 kfe-mk3r kernel: amdgpu 0000:04:00.0: amdgpu: SECUREDISPLAY: securedisplay ta ucode is not available
Sep 20 21:39:30 kfe-mk3r kernel: amdgpu 0000:04:00.0: amdgpu: SMU is resuming...
Sep 20 21:39:30 kfe-mk3r kernel: amdgpu 0000:04:00.0: amdgpu: dpm has been enabled
Sep 20 21:39:30 kfe-mk3r kernel: amdgpu 0000:04:00.0: amdgpu: SMU is resumed successfully!
Sep 20 21:39:30 kfe-mk3r kernel: [drm] DMUB hardware initialized: version=0x04000022
Sep 20 21:39:30 kfe-mk3r kernel: amdgpu: Move buffer fallback to memcpy unavailable
Sep 20 21:39:30 kfe-mk3r kernel: amdgpu 0000:04:00.0: amdgpu: 00000000fddadbae pin failed
Sep 20 21:39:30 kfe-mk3r kernel: [drm:dm_plane_helper_prepare_fb [amdgpu]] *ERROR* Failed to pin framebuffer with error -19
I have noticed that this patch https://cgit.freedesktop.org/drm/drm/commit/?id=067f44c8b4590c3f24d21a037578a478590f2175 is already implemented in my kernel driver. Not too sure if this is helpful but the issue seemed similar to this: #1668 (closed)
Hardware description:
- CPU: Ryzen 7 6800HS
- GPU: Radeon 680M Graphics
- System Memory: 16Gb
- Display(s): Laptop Display
- Type of Display Connection: None
System information:
- Distro name and Version: Arch
- Kernel version: 6.0.0-rc5-1
- Custom kernel: N/A
- AMD official driver version: N/A
How to reproduce the issue:
Hibernate the laptop then simply wake it up. It will show the lenovo logo, then load arch as usual, then the bug happens.