Ask Your Question

Suspend wakes right up (surface pro 4, fedora 28, kernel 4.18) [closed]

asked 2018-09-22 17:12:34 -0500

ChristianFosli gravatar image

updated 2018-09-23 09:21:12 -0500

Hi guys!

I'm trying to get suspend to work on my surface pro 4 with fedora 28 and kernel 4.18

I try to suspend using sudo systemctl suspend. This causes the screen to turn off for about 1 second, but then the device wakes back up, and goes to the log-in screen.

Hoping someone here may be able to help me troubleshoot what's causing it to wake right back up.

Below are some lines from dmesg which might be of help. There seems to be some errors with the wifi driver (mwifiex_pcie), however I get the same issue if I turn off wifi before trying to suspend. Also it says Device 0000:00:14.0 failed to suspend async: error -16 but I am not sure which device this is?

edit: I managed to get this working ok, see my answer below


[ 1165.861762] PM: suspend entry (s2idle)
[ 1165.861764] PM: Syncing filesystems ... done.
[ 1165.887914] Freezing user space processes ... (elapsed 0.002 seconds) done.
[ 1165.890132] OOM killer disabled.
[ 1165.890132] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[ 1165.891552] Suspending console(s) (use no_console_suspend to debug)
[ 1165.953802] pci_pm_suspend(): hcd_pci_suspend+0x0/0x30 returns -16
[ 1165.953817] dpm_run_callback(): pci_pm_suspend+0x0/0x120 returns -16
[ 1165.953824] PM: Device 0000:00:14.0 failed to suspend async: error -16
[ 1166.164457] PM: Some devices failed to suspend, or early wake event detected
[ 1166.178263] PM: resume devices took 0.013 seconds
[ 1166.178316] OOM killer enabled.
[ 1166.178319] Restarting tasks ... done.
[ 1166.315938] PM: suspend exit
[ 1166.620959] [drm] Reducing the compressed framebuffer size. This may lead to less power savings than a non-reduced-size. Try to increase stolen memory size if available in BIOS.
[ 1198.697469] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 1198.697635] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 1198.720363] mwifiex_pcie: try set_consistent_dma_mask(32)
[ 1198.720452] mwifiex_pcie: PCI memory map Virt0: 000000008f722249 PCI memory map Virt2: 000000000b705fd7
[ 1198.721710] mwifiex_pcie 0000:02:00.0: WLAN FW already running! Skip FW dnld
[ 1198.721711] mwifiex_pcie 0000:02:00.0: WLAN FW is active
[ 1198.778168] mwifiex_pcie 0000:02:00.0: Unknown api_id: 4
[ 1198.834445] mwifiex_pcie 0000:02:00.0: info: MWIFIEX VERSION: mwifiex 1.0 (15.68.7.p154) 
[ 1198.834457] mwifiex_pcie 0000:02:00.0: driver_version = mwifiex 1.0 (15.68.7.p154) 
[ 1198.851470] mwifiex_pcie 0000:02:00.0 wlp2s0: renamed from mlan0
[ 1198.868103] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 1198.868254] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 1198.898650] IPv6: ADDRCONF(NETDEV_UP): wlp2s0: link is not ready
[ 1202.177582] mwifiex_pcie 0000:02:00.0: info: trying to associate to 'ChristianEvaOgSofia' bssid 34:12:98:06:c4:37
[ 1202.203205] mwifiex_pcie 0000:02:00.0: info: associated to bssid 34:12:98:06:c4:37 successfully
[ 1202.207238] IPv6: ADDRCONF(NETDEV_CHANGE): wlp2s0: link becomes ready
[ 3536.403482] [drm] Reducing the compressed framebuffer size. This may lead to less power savings than a ...
edit retag flag offensive reopen merge delete

Closed for the following reason the question is answered, right answer was accepted by ChristianFosli
close date 2018-09-23 14:19:54.113369

1 Answer

Sort by ยป oldest newest most voted

answered 2018-09-23 09:19:42 -0500

ChristianFosli gravatar image

I found an acceptable work-around, for me!

Posting my solution here, in case anyone else struggles with the same.

  1. Check if there are any ACPI wakeup triggers enabled (ref wiki.archlinux)

    # cat /proc/acpi/wakeup | grep enabled

  2. Disable the wakeup trigger that's causing suspend to fail (in my case XHC)

    # echo XHC > /proc/acpi/wakeup

  3. Disable the built-in wifi's module from the kernel (in my case first suspend worked without doing this, but wifi was broken upon resume. Second+ suspend failed due to mwifiex failed to suspend.)

    # modprobe -r mwifiex_pcie

  4. Suspend now works fine, for me (except broken wifi on resume, se below...)

    # systemctl suspend

After resume we can try to add the built-in wifi module again with modprobe mwifiex_pcie, but in my experience the built-in wifi will not work until a reboot. I have an external usb wifi adapter that I can use though. Then this works great :-)

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2018-09-22 17:12:34 -0500

Seen: 215 times

Last updated: Sep 23 '18