To check the theory from comment #13, I built kernel from mainline at tag v5.6-rc5. Out of the box, it behaves the same way as all recent kernels: suspend works only the first time. I could not revert commit f15bb6d (there were later changes), instead I commented out the calls to e1000e_s0ix_entry_flow() and e1000e_s0ix_exit_flow()
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c index db4ea58bac82..53f8ed97d282 100644 --- a/drivers/net/ethernet/intel/e1000e/netdev.c +++ b/drivers/net/ethernet/intel/e1000e/netdev.c @@ -6860,8 +6860,8 @@ static int e1000e_pm_suspend(struct device *dev) e1000e_pm_thaw(dev); /* Introduce S0ix implementation */ - if (hw->mac.type >= e1000_pch_cnp) - e1000e_s0ix_entry_flow(adapter); + /*if (hw->mac.type >= e1000_pch_cnp) + e1000e_s0ix_entry_flow(adapter);*/ return rc; } @@ -6875,8 +6875,8 @@ static int e1000e_pm_resume(struct device *dev) int rc; /* Introduce S0ix implementation */ - if (hw->mac.type >= e1000_pch_cnp) - e1000e_s0ix_exit_flow(adapter); + /* if (hw->mac.type >= e1000_pch_cnp) + e1000e_s0ix_exit_flow(adapter);*/ rc = __e1000_resume(pdev); if (rc) And voila, suspend works normally every time now! Apparently S0ix implementation is indeed the culprit. -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux in Ubuntu. https://bugs.launchpad.net/bugs/1865570 Title: suspend only works once on ThinkPad X1 Carbon gen 7 Status in linux package in Ubuntu: Incomplete Bug description: 5.4.0-16 and 5.4.0-17 go to suspend when the lid is closed, but *only once* after boot. On subsequent attempts, when the lid it closed, backlight and wifi are turned off, but system does not suspend. First successful suspend: [ 147.413295] PM: suspend entry (s2idle) [ 147.416601] Filesystems sync: 0.003 seconds [ 147.419371] Freezing user space processes ... (elapsed 0.001 seconds) done. [ 147.421210] OOM killer disabled. [ 147.421210] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done. [ 147.422375] printk: Suspending console(s) (use no_console_suspend to debug) [ 147.422630] wlp0s20f3: deauthenticating from 18:d6:c7:61:95:c2 by local choice (Reason: 3=DEAUTH_LEAVING) [ 147.527810] e1000e: EEE TX LPI TIMER: 00000011 [ 150.246317] ACPI: EC: interrupt blocked [ 881.134544] ACPI: EC: interrupt unblocked [ 883.933255] iwlwifi 0000:00:14.3: Applying debug destination EXTERNAL_DRAM [ 884.047802] iwlwifi 0000:00:14.3: Applying debug destination EXTERNAL_DRAM [ 884.112730] iwlwifi 0000:00:14.3: FW already configured (0) - re-configuring [ 886.815475] e1000e 0000:00:1f.6 enp0s31f6: PHY Wakeup cause - Unicast Packet [ 887.485832] e1000e 0000:00:1f.6 enp0s31f6: Hardware Error [ 888.016931] OOM killer enabled. [ 888.016932] Restarting tasks ... done. [ 888.060613] PM: suspend exit Second unsuccessful suspend: [ 907.584802] PM: suspend entry (s2idle) [ 907.589779] Filesystems sync: 0.004 seconds [ 907.591416] Freezing user space processes ... (elapsed 0.002 seconds) done. [ 907.593518] OOM killer disabled. [ 907.593518] Freezing remaining freezable tasks ... (elapsed 0.328 seconds) done. [ 907.921560] printk: Suspending console(s) (use no_console_suspend to debug) [ 907.922127] wlp0s20f3: deauthenticating from 18:d6:c7:61:95:c2 by local choice (Reason: 3=DEAUTH_LEAVING) [ 908.024438] e1000e: EEE TX LPI TIMER: 00000011 [ 909.916364] PM: pci_pm_suspend(): e1000e_pm_suspend+0x0/0x80 [e1000e] returns -2 [ 909.916367] PM: dpm_run_callback(): pci_pm_suspend+0x0/0x150 returns -2 [ 909.916369] PM: Device 0000:00:1f.6 failed to suspend async: error -2 [ 911.183052] PM: Some devices failed to suspend, or early wake event detected [ 911.197091] iwlwifi 0000:00:14.3: Applying debug destination EXTERNAL_DRAM [ 911.314903] iwlwifi 0000:00:14.3: Applying debug destination EXTERNAL_DRAM [ 911.382438] iwlwifi 0000:00:14.3: FW already configured (0) - re-configuring [ 911.413624] OOM killer enabled. [ 911.413625] Restarting tasks ... done. [ 911.462021] PM: suspend exit It looks like Ethernet driver prevents suspend. Ethernet is not connected (I do not have the adaptor). To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1865570/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp