ValveSoftware / ValveSoftware/SteamOS
Legion Go 2: intermittent suspend hang (screen off, power LED solid, unresponsive), log ends at "PM: suspend entry (s2idle)"
Nobody has claimed this yet.
- Dominant language
- No language data
- Stars
- 2.6k
- Forks
- 83
- Avg merge
- 4m
- Merged PRs (30d)
- 3
Description
System information
- Device: Lenovo Legion Go 2 (Ryzen Z2 Extreme, OLED)
- SteamOS version: 3.8.16 (Stable channel)
- Steam client: Stable, latest at time of report
- Checked for updates in Settings > System: yes, up to date
- Firmware: up to date via fwupd (System Firmware and all Legion Controller firmware report latest available version, no pending updates)
Description
Suspend intermittently hangs partway through entering sleep. The screen turns off, but the power LED stays solid instead of blinking, and the device does not respond to a power button press. The only way out is holding the power button ~10 seconds to force a shutdown, then booting again.
This is intermittent: suspend usually works (blinking LED, resumes normally), then occasionally hangs with no obvious pattern. It happens both while a game is running and appears unrelated to the specific game: in the log below, one suspend with the same game running (Dave the Diver, appid 1868140) succeeded at 19:58 and a later one at 21:30 in the same boot hung. A suspend from the home screen after rebooting also succeeded.
I started noticing this after a recent Steam client update, though I cannot confirm it never happened before.
Log evidence (journalctl from the boot that hung)
Boot shows the kernel already applies a Legion Go 2 quirk:
Low-power S0 idle used by default for system suspend
Using s2idle quirk to avoid Lenovo Legion Go 2 platform firmware bug
Successful suspend at 19:58 (entry and exit both logged):
19:58:35 systemd-sleep[4080]: Performing sleep operation 'suspend'...
19:58:35 kernel: PM: suspend entry (s2idle)
21:03:48 kernel: PM: suspend exit
Failed suspend at 21:30: the software side completes (user.slice frozen, NetworkManager asleep), then the log ends permanently at suspend entry. This was the hang requiring forced shutdown:
21:30:02 systemd-sleep[4984]: Successfully froze unit 'user.slice'.
21:30:02 systemd-sleep[4984]: Performing sleep operation 'suspend'...
21:30:02 kernel: PM: suspend entry (s2idle)
(nothing further logged for this boot)
Steps to reproduce
- Use the device normally (game running or not)
- Press the power button to suspend
- Most of the time: normal suspend (blinking LED). Occasionally: screen off, LED solid, device unresponsive, forced shutdown required
No reliable trigger found yet. Happy to provide a full journalctl dump or a Steam system report if useful.
Possibly related to #2491 (s2idle no longer reaching deepest state since 3.8, suspected ACPI cpuidle backport regression) and #2511 (suspend locks requiring forced shutdown, though that thread is desktop/dGPU hardware). My case is on supported handheld hardware with integrated graphics, and the kernel already applies a Legion Go 2 s2idle quirk at boot, so filing separately.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the affected boot's journalctl output and compare the successful and failed suspend sequences around systemd-sleep and the kernel's “PM: suspend entry (s2idle)” line. Check the mentioned Legion Go 2 s2idle quirk and related issues #2491 and #2511 for context. Done means identifying a reproducible trigger or producing actionable evidence about the suspend component that hangs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- linux
- Domain
- operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100