Sample Header Ad - 728x90

Find workaround for display not resuming from deep sleep

0 votes
0 answers
378 views
How can I activate the screen if it doesn't turn on after resuming from the S3 deep sleep state (suspend to RAM)? The test for suspending to RAM appears to be successful.
# echo core > /sys/power/pm_test
# echo mem > /sys/power/state
The device seems suspending.
# echo none > /sys/power/pm_test
# echo mem > /sys/power/state
The power LED turns off. I can resume it by pressing a key. The device powers on, but the screen remains unresponsive. I am able to type commands in the terminal and also hear system sounds.
# dmesg > log.txt
# reboot
Here are the dmesg messages recorded from the moment I initiated the suspension to RAM until right before I rebooted.
[  986.764160] PM: suspend entry (deep)
[  986.775044] Filesystems sync: 0.010 seconds
[  986.790717] rfkill: input handler enabled
[  986.791783] Freezing user space processes
[  986.793695] Freezing user space processes completed (elapsed 0.001 seconds)
[  986.793700] OOM killer disabled.
[  986.793702] Freezing remaining freezable tasks
[  986.794847] Freezing remaining freezable tasks completed (elapsed 0.001 seconds)
[  986.794880] printk: Suspending console(s) (use no_console_suspend to debug)
[  986.909707] ACPI: EC: interrupt blocked
[  986.946292] ACPI: PM: Preparing to enter system sleep state S3
[  986.946831] ACPI: EC: event blocked
[  986.946833] ACPI: EC: EC stopped
[  986.946834] ACPI: PM: Saving platform NVS memory
[  986.947201] Disabling non-boot CPUs ...
[  986.949337] smpboot: CPU 1 is now offline
[  986.952353] smpboot: CPU 2 is now offline
[  986.955071] smpboot: CPU 3 is now offline
[  986.957565] smpboot: CPU 4 is now offline
[  986.960071] smpboot: CPU 5 is now offline
[  986.960279] ACPI: PM: Low-level resume complete
[  986.960279] ACPI: EC: EC started
[  986.960279] ACPI: PM: Restoring platform NVS memory
[  986.960279] AMD-Vi: Virtual APIC enabled
[  986.960279] AMD-Vi: Virtual APIC enabled
[  986.960279] LVT offset 0 assigned for vector 0x400
[  986.960279] Enabling non-boot CPUs ...
[  986.960279] x86: Booting SMP configuration:
[  986.960279] smpboot: Booting Node 0 Processor 1 APIC 0x1
[  986.961196] ACPI: \_SB_.PLTF.C001: Found 3 idle states
[  986.961203] ACPI: FW issue: working around C-state latencies out of order
[  986.961407] CPU1 is up
[  986.961423] smpboot: Booting Node 0 Processor 2 APIC 0x2
[  986.961697] ACPI: \_SB_.PLTF.C002: Found 3 idle states
[  986.961703] ACPI: FW issue: working around C-state latencies out of order
[  986.961897] CPU2 is up
[  986.961919] smpboot: Booting Node 0 Processor 3 APIC 0x4
[  986.962448] ACPI: \_SB_.PLTF.C003: Found 3 idle states
[  986.962460] ACPI: FW issue: working around C-state latencies out of order
[  986.962924] CPU3 is up
[  986.962943] smpboot: Booting Node 0 Processor 4 APIC 0x5
[  986.963563] ACPI: \_SB_.PLTF.C004: Found 3 idle states
[  986.963580] ACPI: FW issue: working around C-state latencies out of order
[  986.964123] CPU4 is up
[  986.964137] smpboot: Booting Node 0 Processor 5 APIC 0x6
[  986.964691] ACPI: \_SB_.PLTF.C005: Found 3 idle states
[  986.964708] ACPI: FW issue: working around C-state latencies out of order
[  986.965199] CPU5 is up
[  986.966014] ACPI: PM: Waking up from system sleep state S3
[  986.966512] ACPI: EC: interrupt unblocked
[  986.968633] ACPI: EC: event unblocked
[  986.968812] pci 0000:00:00.2: can't derive routing for PCI INT A
[  986.968818] pci 0000:00:00.2: PCI INT A: no GSI
[  986.992288] nvme nvme0: Shutdown timeout set to 8 seconds
[  987.112414] nvme nvme0: 12/0/0 default/read/poll queues
[  987.214103] OOM killer enabled.
[  987.214107] Restarting tasks ... done.
[  987.216294] random: crng reseeded on system resumption
[  987.216901] PM: suspend exit
[  987.280708] ata1: SATA link down (SStatus 0 SControl 300)
[  987.281085] ata2: SATA link down (SStatus 0 SControl 300)
[  987.402492] rfkill: input handler disabled
[  991.340829] acpi AMDI0010:03: Already enumerated
[  996.400591] acpi AMDI0010:03: Already enumerated
Additional information about the system:
$ uname -rvm
6.3.10-gnu #1 SMP PREEMPT_DYNAMIC 1 x86_64
$ lspci -s 0000:00:00.2
00:00.2 IOMMU: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne IOMMU
$ lspci -k -s 02:00.0
02:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Renoir (rev c3)
	Subsystem: Acer Incorporated [ALI] Device 142b
	Kernel modules: amdgpu
$ shepherd --version | grep shepherd
shepherd (GNU Shepherd) 0.10.1
--- There is no such issue on Ubuntu or Fedora. But I can reproduce it there too by adding nomodeset to the kernel boot parameters. The issue persists on Trisquel and Guix systems both running blob-free kernels. So, I conclude that the issue is a consequence of a fallback mechanism when the kernel does not load firmware for AMD GPU with Ryzen 5 4500U. I suspect that it depends on the installed UEFI firmware capabilities but I am not sure how to investigate it. Considering that I have access to the terminal after the system wakes from sleep, could I simply reset the display from the command line somehow?
Asked by Roman Riabenko (2436 rep)
Jul 2, 2023, 09:58 AM
Last activity: Jul 4, 2023, 08:28 AM