You are not logged in.
Pages: 1
Hi, new here so please go easy :-)
I'm enjoying the Arch journey so far, having moved a few machines across from other distros and loving the fine grained control I get with Arch.
Run into a suspend issue on a T14 Gen2 which is puzzling me though. On this machine I was running Mint 22, based on Ubuntu 24.04 LTS, without issue - everything works.
However in Arch the machine fails to suspend with the following error messages:
Dec 03 22:32:42 archiso kernel: PM: suspend entry (s2idle)
Dec 03 22:32:42 archiso kernel: Filesystems sync: 0.000 seconds
Dec 03 22:32:43 archiso kernel: Freezing user space processes
Dec 03 22:32:43 archiso kernel: Freezing user space processes completed (elapsed 0.001 seconds)
Dec 03 22:32:43 archiso kernel: OOM killer disabled.
Dec 03 22:32:43 archiso kernel: Freezing remaining freezable tasks
Dec 03 22:32:43 archiso kernel: Freezing remaining freezable tasks completed (elapsed 0.068 seconds)
Dec 03 22:32:43 archiso kernel: printk: Suspending console(s) (use no_console_suspend to debug)
Dec 03 22:32:43 archiso kernel: sd 0:0:0:0: [sda] Synchronizing SCSI cache
Dec 03 22:32:43 archiso kernel: mhi-pci-generic 0000:08:00.0: failed to suspend device: -16
Dec 03 22:32:43 archiso kernel: mhi-pci-generic 0000:08:00.0: PM: pci_pm_suspend(): mhi_pci_suspend [mhi_pci_generic] returns -16
Dec 03 22:32:43 archiso kernel: mhi-pci-generic 0000:08:00.0: PM: dpm_run_callback(): pci_pm_suspend returns -16
Dec 03 22:32:43 archiso kernel: mhi-pci-generic 0000:08:00.0: PM: failed to suspend async: error -16
Dec 03 22:32:43 archiso kernel: PM: Some devices failed to suspend, or early wake event detected
Dec 03 22:32:43 archiso kernel: psmouse serio1: synaptics: queried max coordinates: x [..5678], y [..4694]
Dec 03 22:32:43 archiso kernel: psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1162..]
Dec 03 22:32:43 archiso kernel: OOM killer enabled.
Dec 03 22:32:43 archiso kernel: Restarting tasks ... done.
Dec 03 22:32:43 archiso kernel: random: crng reseeded on system resumption
Dec 03 22:32:44 archiso systemd-sleep[1384]: Failed to put system to sleep. System resumed again: Device or resource busyThe device in question is:
08:00.0 Unassigned class [ff00]: Quectel Wireless Solutions Co., Ltd. EM120R-GL LTE ModemRunning the latest 6.12.1 kernel (december iso) and have seen the same issue with a fully installed version (which incudes ModemManager, NetworkManager etc.)
So in Mint 22, and also Ubuntu 24.04, suspend happens without a hitch, straight of a bootable stick, and also fully installed.
I've tried rolling Arch back to the closest similar kernel to Ubuntu / Mint (6.8.x) but that doesn't fix the issue, I've also tried booting a March/April iso from the archive, which includes the same kernel version, and again, same problem. Is Ubuntu doing something clever with this device on suspend, and how would I find out?
Thanks for any help / input!
S :-)
Offline
Does the Ubuntu journal say anything relevant?
Perhaps check /etc/pm/sleep.d/, although I don't think Ubuntu uses that any more, so also check /usr/lib/systemd/system-sleep/.
Jin, Jîyan, Azadî
Offline
Thanks. See attached the same section from journalctl for Linux Mint, can't see anything here except the obvious ie. no errors for that device.
Dec 04 15:32:19 t14tux kernel: PM: suspend entry (s2idle)
Dec 04 15:32:19 t14tux kernel: Filesystems sync: 0.002 seconds
Dec 04 15:32:31 t14tux kernel: Freezing user space processes
Dec 04 15:32:31 t14tux kernel: Freezing user space processes completed (elapsed 0.001 seconds)
Dec 04 15:32:31 t14tux kernel: OOM killer disabled.
Dec 04 15:32:31 t14tux kernel: Freezing remaining freezable tasks
Dec 04 15:32:31 t14tux kernel: Freezing remaining freezable tasks completed (elapsed 0.000 seconds)
Dec 04 15:32:31 t14tux kernel: printk: Suspending console(s) (use no_console_suspend to debug)
Dec 04 15:32:31 t14tux kernel: sd 0:0:0:0: [sda] Synchronizing SCSI cache
Dec 04 15:32:31 t14tux kernel: e1000e: EEE TX LPI TIMER: 00000011
Dec 04 15:32:31 t14tux kernel: ACPI: EC: interrupt blocked
Dec 04 15:32:31 t14tux kernel: ACPI: EC: interrupt unblocked
Dec 04 15:32:31 t14tux kernel: nvme nvme0: 8/0/0 default/read/poll queues
Dec 04 15:32:31 t14tux kernel: nvme nvme0: Ignoring bogus Namespace Identifiers
Dec 04 15:32:31 t14tux kernel: usb 3-5.2: reset high-speed USB device number 7 using xhci_hcd
Dec 04 15:32:31 t14tux kernel: psmouse serio1: synaptics: queried max coordinates: x [..5678], y [..4694]
Dec 04 15:32:31 t14tux kernel: psmouse serio1: synaptics: queried min coordinates: x [1266..], y [1162..]
Dec 04 15:32:31 t14tux kernel: usb 3-5.2.2: reset low-speed USB device number 10 using xhci_hcd
Dec 04 15:32:31 t14tux kernel: usb 3-5.2.4: reset high-speed USB device number 11 using xhci_hcd
Dec 04 15:32:31 t14tux kernel: usb 3-5.2.1: reset full-speed USB device number 9 using xhci_hcd
Dec 04 15:32:31 t14tux kernel: OOM killer enabled.
Dec 04 15:32:31 t14tux kernel: Restarting tasks ...
Dec 04 15:32:31 t14tux kernel: mei_hdcp 0000:00:16.0-b638ab7e-94e2-4ea2-a552-d1c54b627f04: bound 0000:00:02.0 (ops i915_hdcp_ops [i915])
Dec 04 15:32:31 t14tux kernel: done.
Dec 04 15:32:31 t14tux kernel: random: crng reseeded on system resumptionI checked /usr/lib/systemd/system-sleep/ in which are contained 4 scripts with powersave hooks:
atop-pm hdparm nvidia tlpNone of these appear to have anything to do with the issue, and when booting Mint from a stick none are present.
I'll keep digging... Any other ideas?
S :-)
Offline
Sorry I know its been 9 months but I have the exact same problem with my Lenovo Thinkpad X1 Carbon Gen 9 and was wondering if you found a fix.
When I try to systemctl suspend it just freezes for a second and unfreezes. When I dig through the logs its the exact same problem as you are having where device mhi-pci-generic fails to suspend with code -16, which aborts the whole suspend.
I have s3 sleep enabled
cat /sys/power/mem_sleep
s2idle [deep]
and here are the logs
Sep 13 05:30:22 navi kernel: PM: suspend entry (deep)
Sep 13 05:30:22 navi kernel: printk: Suspending console(s) (use no_console_suspend to debug)
Sep 13 05:30:22 navi kernel: mhi-pci-generic 0000:08:00.0: failed to suspend device: -16
Sep 13 05:30:22 navi kernel: mhi-pci-generic 0000:08:00.0: PM: pci_pm_suspend(): mhi_pci_suspend [mhi_pci_generic] returns -16
Sep 13 05:30:22 navi kernel: mhi-pci-generic 0000:08:00.0: PM: dpm_run_callback(): pci_pm_suspend returns -16
Sep 13 05:30:22 navi kernel: mhi-pci-generic 0000:08:00.0: PM: failed to suspend async: error -16
Sep 13 05:30:22 navi kernel: PM: Some devices failed to suspend, or early wake event detected
Sep 13 05:30:22 navi kernel: PM: suspend exit
Sep 13 05:30:22 navi kernel: PM: suspend entry (s2idle)
Sep 13 05:30:23 navi kernel: printk: Suspending console(s) (use no_console_suspend to debug)
Sep 13 05:30:23 navi kernel: mhi-pci-generic 0000:08:00.0: failed to suspend device: -16
Sep 13 05:30:23 navi kernel: mhi-pci-generic 0000:08:00.0: PM: pci_pm_suspend(): mhi_pci_suspend [mhi_pci_generic] returns -16
Sep 13 05:30:23 navi kernel: mhi-pci-generic 0000:08:00.0: PM: dpm_run_callback(): pci_pm_suspend returns -16
Sep 13 05:30:23 navi kernel: mhi-pci-generic 0000:08:00.0: PM: failed to suspend async: error -16
Sep 13 05:30:23 navi kernel: PM: Some devices failed to suspend, or early wake event detected
Sep 13 05:30:23 navi kernel: PM: suspend exit
First I thought it was something with tlp (or tlp-rdw), since we both have it installed, but after uninstalling tlp, the issue still persists. I'm genuinely out of ideas and was wondering if you had any luck with fixing the problem, since our issues are similar.
Offline
I never got to the bottom of this but did find a workaround. I assume you're seeing the same issue with the current 6.16 kernel? As I mentioned in earlier posts, Ubuntu / Mint doesn't seem to have this problem with equivalent kernel version(s) downstream, so I'm guessing the Ubuntu devs have made some config adjustments to fix this issue. No surprise as Canonical go out of their way to ensure that Ubuntu works on mainstream laptops (Dell, Lenovo, HP etc.), but I gave up trying to nail this down and figured a workaround.
The issue concerns the MHI modules and config for WWAN over mobile networks. The T14 gen2 uses a 'Quectel' modem for this purpose and the MHI modules are needed in support. Since I don't use inbuilt WWAN over mobile data I can live without this feature, so I blacklisted the MHI modules which fixes the problem.
To do this create file /etc/modprobe.d/blacklist_mhi.conf with the following:
blacklist mhi
blacklist mhi_ep
blacklist mhi_net
blacklist mhi_pci_generic
blacklist mhi_wwan_ctrl
blacklist mhi_wwan_mbimIf you find a better solution or find out more please post back as the above isn't ideal ![]()
ps. The other thing you could try is adding pcie_aspm=force to the kernel boot parameters. Ubuntu has it enabled by default, Arch probably doesn't. Happy to try myself but won't be able to for a few days.
Last edited by sebt (2025-09-13 15:18:00)
Offline
The /etc/modprobe.d/blacklist_mhi.conf workaround works great. I personally do not use WWAN over mobile networks for my laptop so the downsides aren't a big deal either.
Adding pcie_aspm=force to the kernel parameters doesn't seem to do anything. I'll keep looking for better solutions since the above workaround isn't "ideal" but nevertheless I'm happy with the results. Huge thanks to you for replying with a solution, especially since the original post is almost a year old! ![]()
Offline
No problem! I haven't tried this, but if you really wanted WWAN you could probably use a udev/systemd service that unloads mhi* modules on standby and reloads them on resume. The detective in me would like to know what Ubuntu does differently here, I can't find anything obvious comparing kernel configs nor any Lenovo specific quirks, scripts or udev rules etc..
Happy to help, that's the freedom of linux and open source. Fairly new to Arch but driving linux pretty much since the beginning here ![]()
Offline
Pages: 1