Open lcyf9102s opened 1 month ago
Don't filter the dmesg. You only posted the part that says that suspending / hibernating failed, but didn't include the part that might tell us what actually caused it to fail.
Don't filter the dmesg. You only posted the part that says that suspending / hibernating failed, but didn't include the part that might tell us what actually caused it to fail.
Sorry for the inconvenience, here's the full dmesg output:
I also saw a weird behavior with suspension on arch with 6.8.1. When the device suspends and is off for more than 15 minutes or so, it somehow crashes/powers down. The last journalctl entries are:
Apr 05 10:29:00 surfaceleo systemd-sleep[8004]: Performing sleep operation 'suspend'...
Apr 05 10:29:00 surfaceleo kernel: PM: suspend entry (s2idle)
Seeing similar issues with suspend on Arch 6.8.2
Hardware model: Surface Book 3 Kernel version: 6.8.2-arch2-1 Distribution: Arch Linux
[ 3700.695363] port dw-apb-uart.3:0.0: PM: dpm_run_callback(): pm_runtime_force_suspend+0x0/0x120 returns -16
[ 3700.695378] port dw-apb-uart.3:0.0: PM: failed to suspend: error -16
[ 3700.695382] PM: Some devices failed to suspend, or early wake event detected
Replicated this on: 6.8.1-arch1-1-surface
Also replicated this on 6.7.9-surface kernel.
I suspect this is related to using the power dock. I have the power brick dock with mouse, keyboard and monitor connected (USBC to DisplayPort).
I keep on having this issue on my SP7 too for about a month or so. Also Arch. When pressing my power button or when trying to sleep via the DE, it every so often fails to do so. I then end up on my KDE lockscreen. When I then click the suspend-button on the lockscreen, my system properly goes to sleep. This started happenening, after I updated around mid of March for KDE 6 which also buffed the kenel at that point.
This bug is utterly annoying, since my SP7 sometimes turns on in my bag, when the power button is acidentally triggered and then it cant automatically go to sleep, resulting in a drained battery.
I am on a Surface Pro 7 using Arch and have been having the same problem on an inconsistent basis. I think I've tracked it down to the 8250_dw module. Blacklisting it lets me hibernate normally:
sudo nano /etc/modprobe.d/blacklist.conf
add line: blacklist 8250_dw
sudo reboot now
This will cause your laptop to stop recognizing your battery so it isn't much of a fix but hope this helps somehow.
Tested out the change by @cclark99 and yeah it does seem to work but not really a workable solution.
Upgraded to Arch 6.8.5-arch1-1 with the same issues replicated.
If you do get a login screen on resuming, you can log in but your desktop could just be in a busted state. You're able to still SSH in to the box so it does actually "resume".
With latest 6.8.6-arch1-1-surface kernel.
Installed manually with:
sudo pacman -U linux-surface-6.8.6.arch1-1-x86_64.pkg.tar.zst linux-surface-headers-6.8.6.arch1-1-x86_64.pkg.tar.zst
System does not suspend. Unable to login to desktop environment (frozen login screen). Able to SSH in remotely to capture this dmesg output.
OK, using Arch 6.8.6-arch1-1 kernel from upstream Core-Testing installed manually.
Successful suspend and resume 3 times. Looks promising.
Still have this error which means that on Resume, the external monitor is still blank (so no login window). Unplugging the power cable (which is actually the dock) and replugging, resolves this:
[ 303.046945] i915 0000:00:02.0: [drm] *ERROR* Link Training Unsuccessful
EDIT: Suspended laptop for 2 days. 45% battery on Resume. Was unable to get past the login screen (frozen login screen). Able to SSH in remotely to reboot the laptop. Upgrading now to upstream linux-6.8.7.arch1-1 core to test.
I am on a Surface Pro 7 using Arch and have been having the same problem on an inconsistent basis. I think I've tracked it down to the 8250_dw module. Blacklisting it lets me hibernate normally:
sudo nano /etc/modprobe.d/blacklist.conf
add line: blacklist 8250_dwsudo reboot now
This will cause your laptop to stop recognizing your battery so it isn't much of a fix but hope this helps somehow.
This sounds like we could workaround this issue for the moment by rmmod 8250_dw
and insmod 8250_dw
via this: https://github.com/linux-surface/linux-surface/wiki/Systemd
I will give this a quick shot
Edit:
Nevermind. When a device that uses this driver is inresponsive, it takes a lot of time to unload it (not sure if rmmod -f
solves this). Further more my surface now is unable to wake via the power button. It looks like the surface_serial_hub relies on this driver or at least uses it, when available. Mabye we find a safe way to unbind this driver when going to sleep and vice versa?
[ 421.012057] surface_serial_hub serial0-0: failed to disable event source (tc: 0x02, iid: 0x00, reg: 0x01)
[ 430.132094] surface_serial_hub serial0-0: failed to disable event source (tc: 0x03, iid: 0x00, reg: 0x01)
[ 439.252014] surface_serial_hub serial0-0: display-off notification failed: -110
[ 448.372044] surface_serial_hub serial0-0: D0-exit notification failed: -110
I am on a Surface Pro 7 using Arch and have been having the same problem on an inconsistent basis. I think I've tracked it down to the 8250_dw module. Blacklisting it lets me hibernate normally:
sudo nano /etc/modprobe.d/blacklist.conf
add line: blacklist 8250_dwsudo reboot now
This will cause your laptop to stop recognizing your battery so it isn't much of a fix but hope this helps somehow.This sounds like we could workaround this issue for the moment by
rmmod 8250_dw
andinsmod 8250_dw
via this: https://github.com/linux-surface/linux-surface/wiki/SystemdI will give this a quick shot
Edit: Nevermind. When a device that uses this driver is inresponsive, it takes a lot of time to unload it (not sure if
rmmod -f
solves this). Further more my surface now is unable to wake via the power button. It looks like the surface_serial_hub relies on this driver or at least uses it, when available. Mabye we find a safe way to unbind this driver when going to sleep and vice versa?[ 421.012057] surface_serial_hub serial0-0: failed to disable event source (tc: 0x02, iid: 0x00, reg: 0x01) [ 430.132094] surface_serial_hub serial0-0: failed to disable event source (tc: 0x03, iid: 0x00, reg: 0x01) [ 439.252014] surface_serial_hub serial0-0: display-off notification failed: -110 [ 448.372044] surface_serial_hub serial0-0: D0-exit notification failed: -110
Lol 😂 yeah we were on the same page. First thing I tried.
still happening on 6.8.8
Kernel 6.8.1 hibernate failure on arch, rolling back to 6.7.9 and it works fine.
Environment
`dmesg` output
``` [ 137.805095] port dw-apb-uart.4:0.0: PM: dpm_run_callback(): pm_runtime_force_suspend+0x0/0x120 returns -16 [ 137.805111] port dw-apb-uart.4:0.0: PM: failed to suspend: error -16 [ 137.805115] PM: Some devices failed to suspend, or early wake event detected [ 137.829831] OOM killer enabled. ```