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
Last activity: Jul 4, 2023, 08:28 AM