Couple problems with suspend/sleep on Lenovo laptop since Kernel 6.1

Hi, I’m using ThinkBook 15 G4 IAP on i5-1240P.
Before 6.1 it was fine with s2idle sleep, I’m not even bothered to deep dive into it.
But since 6.1 when I hit sleep in plasma it turns off the screen but took tens of seconds to turn off the fans, and the keyboard backlight still lights up even when lid is closed. And power indicator is still solid like it is powered on, not breathing effect as it was before during sleep.

So I tried to switch to
echo deep > /sys/power/mem_sleep
and it almost works fine. Screen, fans and keyboard backlight turns off immediately after hit sleep, power indicator in power button starts breathing effect, but LED on the left side is still solid, not breathing like it was on s2idle on 6.0. So if lid is closed I can’t determine if it sleeps or not.

Besides of this when I turn into deep sleep on this laptop, on both 6.0 and 6.1 after wakeup this laptop hits IRQ storm on IR-IO-APIC 29-fasteoi idma64.1, i2c_designware.1
Some solutions on internet suggest to disable designware module, but in my case, it needs for touchpad to work.
After some trials, I managed to eliminate issue by doing
/usr/bin/i2cdetect -y 13
after wakeup.

[Unit]
Description=Fix IRQ issue after sleep
After=suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target

[Service]
Type=simple
ExecStart=/usr/bin/i2cdetect -y 13

[Install]
WantedBy=suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target

Now the problem only with the side LED which not corresponds with sleep state. Is it possible to tune it somehow?
But s2idle seems a bit broken too, as it drains the battery a little more for the keyboard backlight.

This is a dmesg log for deep sleep and wake on 6.1
[ 5676.652863] audit: type=1130 audit(1671693900.138:217): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=NetworkManager-dispatcher comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[ 5676.653290] wlp0s20f3: deauthenticating from 8c:de:f9:df:33:fb by local choice (Reason: 3=DEAUTH_LEAVING)
[ 5677.219910] PM: suspend entry (deep)
[ 5677.225381] Filesystems sync: 0.005 seconds
[ 5677.368691] Freezing user space processes ... (elapsed 0.005 seconds) done.
[ 5677.373885] OOM killer disabled.
[ 5677.373887] Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done.
[ 5677.376564] printk: Suspending console(s) (use no_console_suspend to debug)
[ 5677.429156] e1000e: EEE TX LPI TIMER: 00000011
[ 5677.896809] ACPI: EC: interrupt blocked
[ 5677.995979] ACPI: PM: Preparing to enter system sleep state S3
[ 5678.006114] ACPI: EC: event blocked
[ 5678.006118] ACPI: EC: EC stopped
[ 5678.006119] ACPI: PM: Saving platform NVS memory
[ 5678.006583] Disabling non-boot CPUs ...
[ 5678.012843] smpboot: CPU 1 is now offline
[ 5678.015767] smpboot: CPU 2 is now offline
[ 5678.020888] smpboot: CPU 3 is now offline
[ 5678.023895] smpboot: CPU 4 is now offline
[ 5678.028037] smpboot: CPU 5 is now offline
[ 5678.030622] smpboot: CPU 6 is now offline
[ 5678.034604] smpboot: CPU 7 is now offline
[ 5678.037517] smpboot: CPU 8 is now offline
[ 5678.040055] smpboot: CPU 9 is now offline
[ 5678.042774] smpboot: CPU 10 is now offline
[ 5678.045183] smpboot: CPU 11 is now offline
[ 5678.047656] smpboot: CPU 12 is now offline
[ 5678.049498] smpboot: CPU 13 is now offline
[ 5678.051419] smpboot: CPU 14 is now offline
[ 5678.053119] smpboot: CPU 15 is now offline
[ 5678.064985] ACPI: PM: Low-level resume complete
[ 5678.065065] ACPI: EC: EC started
[ 5678.065066] ACPI: PM: Restoring platform NVS memory
[ 5678.066650] Enabling non-boot CPUs ...
[ 5678.066808] x86: Booting SMP configuration:
[ 5678.066809] smpboot: Booting Node 0 Processor 1 APIC 0x1
[ 5678.068922] CPU1 is up
[ 5678.069060] smpboot: Booting Node 0 Processor 2 APIC 0x8
[ 5678.075833] CPU2 is up
[ 5678.075967] smpboot: Booting Node 0 Processor 3 APIC 0x9
[ 5678.078068] CPU3 is up
[ 5678.078198] smpboot: Booting Node 0 Processor 4 APIC 0x10
[ 5678.085613] CPU4 is up
[ 5678.085809] smpboot: Booting Node 0 Processor 5 APIC 0x11
[ 5678.088085] CPU5 is up
[ 5678.088288] smpboot: Booting Node 0 Processor 6 APIC 0x18
[ 5678.097509] CPU6 is up
[ 5678.097712] smpboot: Booting Node 0 Processor 7 APIC 0x19
[ 5678.100182] CPU7 is up
[ 5678.100420] smpboot: Booting Node 0 Processor 8 APIC 0x20
[ 5678.106914] core: cpu_atom PMU driver: PEBS-via-PT 
[ 5678.106919] ... version:                5
[ 5678.106922] ... bit width:              48
[ 5678.106923] ... generic registers:      6
[ 5678.106923] ... value mask:             0000ffffffffffff
[ 5678.106925] ... max period:             00007fffffffffff
[ 5678.106925] ... fixed-purpose events:   3
[ 5678.106926] ... event mask:             000000070000003f
[ 5678.107711] CPU8 is up
[ 5678.107920] smpboot: Booting Node 0 Processor 9 APIC 0x22
[ 5678.111731] CPU9 is up
[ 5678.111942] smpboot: Booting Node 0 Processor 10 APIC 0x24
[ 5678.115943] CPU10 is up
[ 5678.116149] smpboot: Booting Node 0 Processor 11 APIC 0x26
[ 5678.120005] CPU11 is up
[ 5678.120222] smpboot: Booting Node 0 Processor 12 APIC 0x28
[ 5678.128340] CPU12 is up
[ 5678.128542] smpboot: Booting Node 0 Processor 13 APIC 0x2a
[ 5678.132770] CPU13 is up
[ 5678.132977] smpboot: Booting Node 0 Processor 14 APIC 0x2c
[ 5678.137004] CPU14 is up
[ 5678.137217] smpboot: Booting Node 0 Processor 15 APIC 0x2e
[ 5678.141214] CPU15 is up
[ 5678.145223] ACPI: PM: Waking up from system sleep state S3
[ 5678.149162] ACPI: EC: interrupt unblocked
[ 5678.300673] ACPI: EC: event unblocked
[ 5678.309054] i915 0000:00:02.0: [drm] GuC firmware i915/adlp_guc_70.bin version 70.5.1
[ 5678.309058] i915 0000:00:02.0: [drm] HuC firmware i915/tgl_huc.bin version 7.9.3
[ 5678.325702] i915 0000:00:02.0: [drm] HuC authenticated
[ 5678.326090] i915 0000:00:02.0: [drm] GuC submission enabled
[ 5678.326091] i915 0000:00:02.0: [drm] GuC SLPC enabled
[ 5678.326521] i915 0000:00:02.0: [drm] GuC RC: enabled
[ 5678.329903] xhci_hcd 0000:00:0d.0: xHC error in resume, USBSTS 0x401, Reinit
[ 5678.329907] usb usb1: root hub lost power or was reset
[ 5678.329908] usb usb2: root hub lost power or was reset
[ 5678.343801] nvme nvme0: 15/0/0 default/read/poll queues
[ 5678.612454] usb 3-5: reset high-speed USB device number 3 using xhci_hcd
[ 5678.788197] mei_hdcp 0000:00:16.0-b638ab7e-94e2-4ea2-a552-d1c54b627f04: bound 0000:00:02.0 (ops i915_hdcp_component_ops [i915])
[ 5678.789071] mei_pxp 0000:00:16.0-fbf6fcf1-96cf-4e2e-a6a6-1bab8cbe36b1: bound 0000:00:02.0 (ops i915_pxp_tee_component_ops [i915])
[ 5678.792326] OOM killer enabled.
[ 5678.792329] Restarting tasks ... done.
[ 5678.804876] random: crng reseeded on system resumption
[ 5678.805289] usb 3-6: USB disconnect, device number 9
[ 5678.928791] usb 3-6: new high-speed USB device number 10 using xhci_hcd
[ 5678.940424] PM: suspend exit
[ 5678.972795] audit: type=1130 audit(1671693916.903:218): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-suspend comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[ 5678.972812] audit: type=1131 audit(1671693916.903:219): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-suspend comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[ 5679.026035] audit: type=1130 audit(1671693916.956:220): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=awake comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[ 5679.052392] audit: type=1131 audit(1671693916.983:221): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=awake comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[ 5679.055149] e1000e 0000:00:1f.6 enp0s31f6: NIC Link is Down
[ 5679.074595] usb 3-6: config 1 interface 0 altsetting 0 bulk endpoint 0x82 has invalid maxpacket 64
[ 5679.077937] usb 3-6: New USB device found, idVendor=10a5, idProduct=9800, bcdDevice=23.19
[ 5679.077942] usb 3-6: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 5679.077944] usb 3-6: Product: FPC Sensor Controller L:0001 FW:27.26.23.19
[ 5679.077945] usb 3-6: Manufacturer: FPC
[ 5681.084891] audit: type=1100 audit(1671693919.013:222): pid=21054 uid=1000 auid=1000 ses=3 msg='op=PAM:unix_chkpwd acct="gl" exe="/usr/bin/unix_chkpwd" hostname=? addr=? terminal=? res=success'
[ 5682.871595] wlp0s20f3: authenticate with 8c:de:f9:df:33:fb
[ 5682.878570] wlp0s20f3: send auth to 8c:de:f9:df:33:fb (try 1/3)
[ 5682.906622] wlp0s20f3: authenticated
[ 5682.908729] wlp0s20f3: associate with 8c:de:f9:df:33:fb (try 1/3)
[ 5682.911689] wlp0s20f3: RX AssocResp from 8c:de:f9:df:33:fb (capab=0x11 status=0 aid=2)
[ 5682.922237] wlp0s20f3: associated
[ 5683.003756] IPv6: ADDRCONF(NETDEV_CHANGE): wlp0s20f3: link becomes ready

Hi @GloooM, and welcome!

Dare I say it? Apparently so…

If it worked previously, and you were happy with that, why not stick to it? For example, why not stick to version 15.15`, the latest LTS?

Edit:

This is already awfully deep for:

Not quite sure about the LTS kernel for this relatively new hardware with big-little cores.
Phoronix says that intel pushes several fixes for performance and screen flickering and so on every new release.
I think it is nice to have the latest kernel and submit a bug if some regressions occur and share solutions with other people.

Indeed it is good. But if you’re happy with an older one, use it.

Fair enough, me neither. But I have read somewhere, at some time, that important stuff gets backported. Don’t know how true it is, though. :man_shrugging: