Cezanne Suspend/Resume Failures, even with latest s0ix patches
Brief summary of the problem:
Suspend is unreliable as the laptop will fail to recover from a suspend/resume cycle. The failure rate is unpredictable. Sometimes things will work for multiple cycles, other times it fails on the first one.
Hardware description:
- CPU: 5900HS
- GPU: Cezanne
- System Memory: 2x8GB Micron DDR4 3200
- Display(s): Built in 120 Hz 1080p, External Monoprice 35in Zero-G 100Hz Monitor
- Type of Diplay Connection: HDMI
System information:
- Distro name and Version: Endeavour and Fedora 34
- Kernel version: 5.13.2 and 5.14.rc-1
- Custom kernel: 5.13.2 built with s0ix patches from 5.14, but also d3hot delay quirk Patched 5.13 kernel tree
- AMD package version: 21.20 firmware
How to reproduce the issue:
Boot into system, suspend via any method (close lid, GNOME Suspend option, or systemctl suspend). Try to resume. With the 5.13 kernels, the system usually suspends right away (blinking power LED), but there can be times where the LED doesn't blink. One can usually wake the system up again from this state. When the resume fails, the system will fail to wake up. No tty is available, and one has to force the power off. Looking at logs after reboot, there is no clear indication of failure. The system will log that it entered s2idle state and no other logs will be seen. Enabling PM Debug doesn't add more useful details
I have a Lenovo USB C dock that I use with this system. To make sure the issue isn't tied to external factors, I have tried these cycles with everything disconnected. The cycles fail the same with the dock connected/disconnected, or external monitor connected/disconnected.
We have a community Discord for ROG users and most G14 and G15 users with Cezanne hardware have similar issues. We've been trying patches from the Renoir suspend thread on 5.12, 5.13 and 5.14 with limited success. The G14 (my model) seems to be the one having the most failures. G15 units appear to have more success but still fail eventually.
Attached files:
Journalctl output from a boot that had one successful resume, followed by a failed suspend. Log ends with 'entering s2idle' but the laptop had to be forced off. failedsuspend.txt