Display stays black after lid-suspend resume; several devices fail to resume from s2idle

Hi,

Laptop 12 (13th Gen, i5-1334U), BIOS 03.09, Arch Linux, kernel 7.2.11-arch1-1, GNOME 51.1 on Wayland. fwupd shows no updates (BIOS, panel and ME firmware all current).

If I lock the screen (Super+L), close the lid and open it again, the laptop wakes up (network reconnects, the machine responds) but the display stays black. Mouse, keys and VT switching don’t bring it back. Closing and opening the lid a second time always fixes it, sometimes with a single flicker about 2s after resume.

While it’s black, gnome-shell spams:

Cursor update failed: drmModeAtomicCommit: Invalid argument

so the kernel is rejecting the compositor’s modeset commits, silently (no i915 errors in dmesg). After a resume that works, the same line shows up once or twice and the display recovers.

It’s not just the display. Going through the journal back to 2025-07-22, several devices have trouble coming back after resume from s2idle:

  • spd5118: resume fails with -ENXIO on every single resume; binds fine on every cold boot
  • eDP panel: fine at cold boot; after s2idle resume it sometimes isn’t re-powered, the black screen above
  • ucsi_acpi: “failed to re-enable notifications (-110)” after resume

Cold boot is clean, those failures only happen on s2idle resume. The whole thing has been present across kernels 6.15.7 to 7.2.11 and GNOME 48.3 to 51.1, so it’s not a recent regression on my end.

Failed resume, journal excerpt (2026-10-22):

09:25:33 logind: Lid closed.
09:25:34 kernel: PM: suspend entry (s2idle)
09:25:37 logind: Lid opened.
09:25:37 kernel: spd5118 17-0050: PM: spd5118_resume returns -6
09:25:37 kernel: spd5118 17-0050: PM: dpm_run_callback(): spd5118_resume [spd5118] returns -6
09:25:38 kernel: PM: suspend exit
09:25:40 gnome-shell: Cursor update failed: drmModeAtomicCommit: Invalid argument   (x73 in ~20s, screen never recovers)
09:25:47 kernel: ucsi_acpi USBC000:00: failed to re-enable notifications (-110)

My read: the s2idle wake path isn’t restoring device state, panel power and the SPD hub both come back broken, while cold boot is fine.

Is this a known issue? Any BIOS/EC/panel firmware fix, or a recommended mitigation (kernel parameter, S3 vs s2idle)?

Hmm.. I’m using KDE (on Fedora Kinoite) and I don’t really experience my screen being stuck black but I think I might have the same problem but KDE handles it better. Sometimes after resuming from sleep screen flashes for a moment, stays black for about 1 second and then works properly.

As for kernel messages I think I had those on every suspend since the beginning. I did small search in my recent kernel logs and I see them:

spd5118 17-0050: PM: dpm_run_callback(): spd5118_resume [spd5118] returns -6
spd5118 17-0050: PM: failed to resume async: error -6

I see this is for RAM temperature sensor, interesting.

ucsi_acpi USBC000:00: failed to re-enable notifications (-110)
ucsi_acpi USBC000:00: possible UCSI driver bug 1
ucsi_acpi USBC000:00: failed to re-enable notifications (-22)

and I get this when plugging in the charger

ucsi_acpi USBC000:00: unknown error 256
ucsi_acpi USBC000:00: GET_CABLE_PROPERTY failed (-5)
ucsi_acpi USBC000:00: unknown error 0
ucsi_acpi USBC000:00: con4: failed to register partner alt modes (-5)

I’ve always assumed those are harmless (although it’d be cool to see charging parameters using standard sysfs interfaces) and didn’t see anyone complaining about those.

After a bit of research I believe this patch addresses the spd5118 issue, and it was merged 3 weeks ago ! It should ship with linux 7.4 as its currently included in v7.4-rc1.

I guess we’ll know if the screen issue is related soon enough :slight_smile:

Otherwise there’s also this patch that fixes a hardware state machine corruption, I’ll report if it fixes anything whenever linux 7.3 is available on arch.