Suspend not working (immediate resume) on my Thinkpad T14 after updates (starting 2025-08)

Worked for a while, now after the kernel 6.16 updates immediately resumes again!

Since we already saw it’s caused by the USB3 ACPI for some reason (xhci_hcd at PCI 0000:00:14.0):

Aug 17 22:43:42 t14-mch kernel: xhci_hcd 0000:00:14.0: PM: pci_pm_suspend(): hcd_pci_suspend returns -16
Aug 17 22:43:42 t14-mch kernel: xhci_hcd 0000:00:14.0: PM: dpm_run_callback(): pci_pm_suspend returns -16
Aug 17 22:43:42 t14-mch kernel: xhci_hcd 0000:00:14.0: PM: failed to suspend async: error -16
Aug 17 22:43:42 t14-mch kernel: PM: Some devices failed to suspend, or early wake event detected

I dont’t need the system to be woken up by something on the USB3 port, so I took more drastic measures and disabled it:

# /etc/tmpfiles.d/disable-usb-wake.conf
# Disable PCI 14.0 XHC USB wakeup (prevents suspending)

#    Path                  Mode UID  GID  Age Argument
w    /proc/acpi/wakeup     -    -    -    -   XHC

Result after each boot/resume:

$ cat /proc/acpi/wakeup 
Device   S-state    Status  Sysfs node
XHC        S3    *disabled  pci:0000:00:14.0

Seems to work: suspend, suspend-then-hibernate, hibernate and hybrid-sleep all working for now.

See also: https://wiki.archlinux.org/title/Systemd#systemd-tmpfiles_-_temporary_files

The little things take the most time to fix.