Thinkpad T14s Gen 6 (AMD) won't suspend after upgrade to Fedora 43

After upgrading to Fedora 43, the laptop will not enter suspend state. Instead, screen turns off and the computer becomes unresponsive to input. A hard power-off is required to continue.

The last failed suspend attempt produced the following errors. The only obvious errors in dmesg seems to correspond to the ThinkPad Thunderbolt docking station I am using. However, the dock was not plugged in at the moment of this attempt:

# journalctl --dmesg -b-1
[ ... boot messages below ... ]
Low-power S0 idle used by default for system suspend
[... suspend attempt below ]
PM: suspend entry (s2idle)
[...]
pcieport 0000:00:01.1: pciehp: Slot(0): Card not present
pcieport 0000:01:00.0: Unable to change power state from D3cold to D0, device inaccessible
pcieport 0000:02:00.0: Unable to change power state from D3cold to D0, device inaccessible
pcieport 0000:02:04.0: Unable to change power state from D3cold to D0, device inaccessible
pcieport 0000:02:01.0: Unable to change power state from D3cold to D0, device inaccessible
pcieport 0000:02:02.0: Unable to change power state from D3cold to D0, device inaccessible
pcieport 0000:02:03.0: Unable to change power state from D3cold to D0, device inaccessible
[...]

# lspci
[...]
01:00.0 PCI bridge: Intel Corporation Thunderbolt 4 Bridge [Goshen Ridge 2020] (rev 03)
02:00.0 PCI bridge: Intel Corporation Thunderbolt 4 Bridge [Goshen Ridge 2020] (rev 03)
02:01.0 PCI bridge: Intel Corporation Thunderbolt 4 Bridge [Goshen Ridge 2020] (rev 03)
02:02.0 PCI bridge: Intel Corporation Thunderbolt 4 Bridge [Goshen Ridge 2020] (rev 03)
02:03.0 PCI bridge: Intel Corporation Thunderbolt 4 Bridge [Goshen Ridge 2020] (rev 03)
02:04.0 PCI bridge: Intel Corporation Thunderbolt 4 Bridge [Goshen Ridge 2020] (rev 03)
[...]

Please suggest what debug logs I might provide to further narrow down the issue.

Check current sleep type:

cat /sys/power/mem_sleep
$ cat /sys/power/mem_sleep
[s2idle]

If you see [s2idle] not deep, switch to deep.
For One-off test run:

echo deep | sudo tee /sys/power/mem_sleep
systemctl suspend

The only sleep mode available is s2idle. If more were available, they would be listed when running /sys/power/mem_sleep. It might be impossible to change the idle mode on my system, as is mentioned on previous generations of my ThinkPad L14s (Gen 6) with AMD.

I was actually able to make it sleep after a fresh boot, without ever connecting it to the dock. I think this points towards the docking/undocking ends up blocking the sleep process somehow.

I am unable to consistently reproduce this issue, but it seems that as long as I have not plugged in the docking station between suspends, there is never an issue. But when I have just disconnected from the dock, then attempt to suspend, some times, it locks the computer up with a black screen and requires a hard power cycle to unlock.

To be continued if I find more hints.

Do you do anything like enabling/disabling power to USB ports during suspend/sleep in your system BIOS? If so, you might try toggling that to see if it clears things up for you.

I have some options for this. Trying out different permutations of the different configuration options in the UEFI menu does not seem to make any difference.

This issue being due to the docking station has now been debunked. Now I suspect that there are one or more processes blocking the suspend action, and the suspect is Tilt and/or Docker in my configuration at work. I almost always start these containers whenever I use the docking station. Red herrings :slight_smile:

Does the system begin to suspend and fails or does it do nothing at all?
Try to suspend via systemctl suspend and see if it’s been blocked.
systemd-inhibit --list will list all active inhibitors.

systemctl suspend -i to ignore the inhibitors.

Screen goes black and computer becomes fully unresponsive, but stays powered on. Only way out again is forcing power off whenever it goes into that state.

Have you tried kernel 6.18.3 ?

1 Like

No, I have not. I did install that now, and it seems to have resolved an issue I had with all black (dead) external displays. Thanks for the hint. I’ll report back when I have tried new suspends!

1 Like

I have a very similar laptop: P14s ThinkPad Gen 6 AMD. I haven’t connected it to a dock yet, so I’m not sure I have that issue. It will suspend/sleep when I shut it. The problem I’ve had a few times now, the system not resuming or waking up from suspend/sleep. When it happens, the only thing I know to do is hold down the power button until the system turns off. My old T14s ThinkPad Gen1 AMD had a Linux setting in the power management section of the BIOS. This newer machine doesn’t have anything similar to that.. @stigok let me know what ends up walking for you.

Conclusion is that this is due to Tilt running, which in turn is orchestrating containers through Docker. I am not digging deeper into this problem for now, as stopping the service before I suspend is consistently preventing this from happening. I want to thank everyone for their help.

This seems to be a different kind of problem. Hope you get yours sorted, too.