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.