Thanks! I tried this and still no success. Given I tried unloading the ath12k 
module and had still seen this issue I suspect this is lower level which may 
require help from a Qualcomm dev. I also tried disabling hardware in the BIOS 
(to try to help single out the issue) but anything I tried resulted in system 
not booting properly.
Do you think it's worth I send a small summary to the kernel mailing list? 
Thanks! :)

## Additional Details

I'll include two tests here, first where I sleep and we still see the
issue, second where I unload the potentially suspect modules and still
see the issue. It's only about 200 lines so I'll paste here instead of
attaching (I hope that's okay).

# Kernel version

```
$ sudo uname -a
Linux [HOSTNAME] 6.17.0-6-generic #6-Ubuntu SMP PREEMPT_DYNAMIC Tue Oct  7 
14:22:06 UTC 2025 aarch64 GNU/Linux
$ sudo lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 25.10
Release:        25.10
Codename:       questing
```

# Suspend
Closed lid, waited 20 seconds and opened again:

```
[Fri Oct 10 09:09:44 2025] PM: suspend entry (deep)
[Fri Oct 10 09:09:44 2025] Filesystems sync: 0.007 seconds
[Fri Oct 10 09:09:44 2025] Freezing user space processes
[Fri Oct 10 09:09:44 2025] Freezing user space processes completed (elapsed 
0.001 seconds)
[Fri Oct 10 09:09:44 2025] OOM killer disabled.
[Fri Oct 10 09:09:44 2025] Freezing remaining freezable tasks
[Fri Oct 10 09:09:44 2025] Freezing remaining freezable tasks completed 
(elapsed 0.000 seconds)
[Fri Oct 10 09:09:44 2025] printk: Suspending console(s) (use 
no_console_suspend to debug)
[Fri Oct 10 09:09:44 2025] Disabling non-boot CPUs ...
[Fri Oct 10 09:09:44 2025] IRQ170: set affinity failed(-22).
[Fri Oct 10 09:09:44 2025] IRQ192: set affinity failed(-22).
[Fri Oct 10 09:09:44 2025] IRQ194: set affinity failed(-22).
[Fri Oct 10 09:09:44 2025] psci: CPU11 killed (polled 1 ms)
[Fri Oct 10 09:09:44 2025] IRQ170: set affinity failed(-22).
[Fri Oct 10 09:09:44 2025] IRQ192: set affinity failed(-22).
[Fri Oct 10 09:09:44 2025] IRQ194: set affinity failed(-22).
[Fri Oct 10 09:09:44 2025] psci: CPU10 killed (polled 0 ms)
[Fri Oct 10 09:09:44 2025] IRQ170: set affinity failed(-22).
[Fri Oct 10 09:09:44 2025] IRQ192: set affinity failed(-22).
[Fri Oct 10 09:09:44 2025] IRQ194: set affinity failed(-22).
[Fri Oct 10 09:09:44 2025] psci: CPU9 killed (polled 0 ms)
[Fri Oct 10 09:09:44 2025] IRQ170: set affinity failed(-22).
[Fri Oct 10 09:09:44 2025] psci: CPU8 killed (polled 0 ms)
[Fri Oct 10 09:09:44 2025] psci: CPU7 killed (polled 1 ms)
[Fri Oct 10 09:09:44 2025] psci: CPU6 killed (polled 0 ms)
[Fri Oct 10 09:09:44 2025] psci: CPU5 killed (polled 1 ms)
[Fri Oct 10 09:09:44 2025] psci: CPU4 killed (polled 0 ms)
[Fri Oct 10 09:09:44 2025] psci: CPU3 killed (polled 1 ms)
[Fri Oct 10 09:09:44 2025] psci: CPU2 killed (polled 1 ms)
[Fri Oct 10 09:09:44 2025] psci: CPU1 killed (polled 0 ms)
[Fri Oct 10 09:09:44 2025] Enabling non-boot CPUs ...
[Fri Oct 10 09:09:44 2025] Detected PIPT I-cache on CPU1
[Fri Oct 10 09:09:44 2025] GICv3: CPU1: found redistributor 100 region 
0:0x00000000170c0000
[Fri Oct 10 09:09:44 2025] CPU1: Booted secondary processor 0x0000000100 
[0x512f0011]
[Fri Oct 10 09:09:44 2025] CPU1 is up
[Fri Oct 10 09:09:44 2025] Detected PIPT I-cache on CPU2
[Fri Oct 10 09:09:44 2025] GICv3: CPU2: found redistributor 200 region 
0:0x0000000017100000
[Fri Oct 10 09:09:44 2025] CPU2: Booted secondary processor 0x0000000200 
[0x512f0011]
[Fri Oct 10 09:09:44 2025] CPU2 is up
[Fri Oct 10 09:09:44 2025] Detected PIPT I-cache on CPU3
[Fri Oct 10 09:09:44 2025] GICv3: CPU3: found redistributor 300 region 
0:0x0000000017140000
[Fri Oct 10 09:09:44 2025] CPU3: Booted secondary processor 0x0000000300 
[0x512f0011]
[Fri Oct 10 09:09:44 2025] CPU3 is up
[Fri Oct 10 09:09:44 2025] Detected PIPT I-cache on CPU4
[Fri Oct 10 09:09:44 2025] GICv3: CPU4: found redistributor 10000 region 
0:0x0000000017180000
[Fri Oct 10 09:09:44 2025] CPU4: Booted secondary processor 0x0000010000 
[0x511f0011]
[Fri Oct 10 09:09:44 2025] CPU4 is up
[Fri Oct 10 09:09:44 2025] Detected PIPT I-cache on CPU5
[Fri Oct 10 09:09:44 2025] GICv3: CPU5: found redistributor 10100 region 
0:0x00000000171c0000
[Fri Oct 10 09:09:44 2025] CPU5: Booted secondary processor 0x0000010100 
[0x511f0011]
[Fri Oct 10 09:09:44 2025] CPU5 is up
[Fri Oct 10 09:09:44 2025] Detected PIPT I-cache on CPU6
[Fri Oct 10 09:09:44 2025] GICv3: CPU6: found redistributor 10200 region 
0:0x0000000017200000
[Fri Oct 10 09:09:44 2025] CPU6: Booted secondary processor 0x0000010200 
[0x511f0011]
[Fri Oct 10 09:09:44 2025] CPU6 is up
[Fri Oct 10 09:09:44 2025] Detected PIPT I-cache on CPU7
[Fri Oct 10 09:09:44 2025] GICv3: CPU7: found redistributor 10300 region 
0:0x0000000017240000
[Fri Oct 10 09:09:44 2025] CPU7: Booted secondary processor 0x0000010300 
[0x511f0011]
[Fri Oct 10 09:09:44 2025] CPU7 is up
[Fri Oct 10 09:09:44 2025] Detected PIPT I-cache on CPU8
[Fri Oct 10 09:09:44 2025] GICv3: CPU8: found redistributor 20000 region 
0:0x0000000017280000
[Fri Oct 10 09:09:44 2025] CPU8: Booted secondary processor 0x0000020000 
[0x511f0011]
[Fri Oct 10 09:09:44 2025] CPU8 is up
[Fri Oct 10 09:09:44 2025] Detected PIPT I-cache on CPU9
[Fri Oct 10 09:09:44 2025] GICv3: CPU9: found redistributor 20100 region 
0:0x00000000172c0000
[Fri Oct 10 09:09:44 2025] CPU9: Booted secondary processor 0x0000020100 
[0x511f0011]
[Fri Oct 10 09:09:44 2025] CPU9 is up
[Fri Oct 10 09:09:44 2025] Detected PIPT I-cache on CPU10
[Fri Oct 10 09:09:44 2025] GICv3: CPU10: found redistributor 20200 region 
0:0x0000000017300000
[Fri Oct 10 09:09:44 2025] CPU10: Booted secondary processor 0x0000020200 
[0x511f0011]
[Fri Oct 10 09:09:44 2025] CPU10 is up
[Fri Oct 10 09:09:44 2025] Detected PIPT I-cache on CPU11
[Fri Oct 10 09:09:44 2025] GICv3: CPU11: found redistributor 20300 region 
0:0x0000000017340000
[Fri Oct 10 09:09:44 2025] CPU11: Booted secondary processor 0x0000020300 
[0x511f0011]
[Fri Oct 10 09:09:44 2025] CPU11 is up
[Fri Oct 10 09:09:45 2025] mhi mhi0: Requested to power ON
[Fri Oct 10 09:09:45 2025] mhi mhi0: Power on setup success
[Fri Oct 10 09:09:45 2025] mhi mhi0: Wait for device to enter SBL or Mission 
mode
[Fri Oct 10 09:09:45 2025] ath12k_pci 0004:01:00.0: chip_id 0x2 chip_family 0x4 
board_id 0xff soc_id 0x40170200
[Fri Oct 10 09:09:45 2025] ath12k_pci 0004:01:00.0: fw_version 0x110cffff 
fw_build_timestamp 2025-06-25 09:26 fw_build_id 
QC_IMAGE_VERSION_STRING=WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3
[Fri Oct 10 09:09:45 2025] nvme nvme0: 12/0/0 default/read/poll queues
[Fri Oct 10 09:09:45 2025] OOM killer enabled.
[Fri Oct 10 09:09:45 2025] Restarting tasks: Starting
[Fri Oct 10 09:09:45 2025] Restarting tasks: Done
[Fri Oct 10 09:09:45 2025] random: crng reseeded on system resumption
[Fri Oct 10 09:09:45 2025] PM: suspend exit
```

# Suspend without modules
Removed modules: `ath12k,mhi_pci_generic,qrtr_mhi,mhi`

```
$ lsmod | grep mhi
mhi_pci_generic        40960  0
qrtr_mhi               16384  0
mhi                   139264  3 ath12k,mhi_pci_generic,qrtr_mhi
qrtr                   49152  22 qrtr_smd,qrtr_mhi
$ sudo modprobe -r ath12k && sudo modprobe -r mhi_pci_generic && sudo modprobe 
-r qrtr_mhi && sudo modprobe -r mhi
$ lsmod | grep mhi
$
```
(to remove mhi, I had to remove dependent modules first. Last line verified 
they're unloaded)

Relevant dmesg output:

```
[Fri Oct 10 09:20:02 2025] PM: suspend entry (deep)
[Fri Oct 10 09:20:02 2025] Filesystems sync: 0.003 seconds
[Fri Oct 10 09:20:02 2025] Freezing user space processes
[Fri Oct 10 09:20:02 2025] Freezing user space processes completed (elapsed 
0.001 seconds)
[Fri Oct 10 09:20:02 2025] OOM killer disabled.
[Fri Oct 10 09:20:02 2025] Freezing remaining freezable tasks
[Fri Oct 10 09:20:02 2025] Freezing remaining freezable tasks completed 
(elapsed 0.003 seconds)
[Fri Oct 10 09:20:02 2025] printk: Suspending console(s) (use 
no_console_suspend to debug)
[Fri Oct 10 09:20:02 2025] Disabling non-boot CPUs ...
[Fri Oct 10 09:20:02 2025] migrate_one_irq: 23 callbacks suppressed
[Fri Oct 10 09:20:02 2025] IRQ170: set affinity failed(-22).
[Fri Oct 10 09:20:02 2025] IRQ192: set affinity failed(-22).
[Fri Oct 10 09:20:02 2025] IRQ194: set affinity failed(-22).
[Fri Oct 10 09:20:02 2025] psci: CPU11 killed (polled 0 ms)
[Fri Oct 10 09:20:02 2025] IRQ170: set affinity failed(-22).
[Fri Oct 10 09:20:02 2025] IRQ192: set affinity failed(-22).
[Fri Oct 10 09:20:02 2025] IRQ194: set affinity failed(-22).
[Fri Oct 10 09:20:02 2025] psci: CPU10 killed (polled 0 ms)
[Fri Oct 10 09:20:02 2025] IRQ170: set affinity failed(-22).
[Fri Oct 10 09:20:02 2025] IRQ192: set affinity failed(-22).
[Fri Oct 10 09:20:02 2025] IRQ194: set affinity failed(-22).
[Fri Oct 10 09:20:02 2025] psci: CPU9 killed (polled 0 ms)
[Fri Oct 10 09:20:02 2025] IRQ170: set affinity failed(-22).
[Fri Oct 10 09:20:02 2025] psci: CPU8 killed (polled 0 ms)
[Fri Oct 10 09:20:02 2025] psci: CPU7 killed (polled 0 ms)
[Fri Oct 10 09:20:02 2025] psci: CPU6 killed (polled 0 ms)
[Fri Oct 10 09:20:02 2025] psci: CPU5 killed (polled 0 ms)
[Fri Oct 10 09:20:02 2025] psci: CPU4 killed (polled 0 ms)
[Fri Oct 10 09:20:02 2025] psci: CPU3 killed (polled 1 ms)
[Fri Oct 10 09:20:02 2025] psci: CPU2 killed (polled 1 ms)
[Fri Oct 10 09:20:02 2025] psci: CPU1 killed (polled 1 ms)
[Fri Oct 10 09:20:02 2025] Enabling non-boot CPUs ...
[Fri Oct 10 09:20:02 2025] Detected PIPT I-cache on CPU1
[Fri Oct 10 09:20:02 2025] GICv3: CPU1: found redistributor 100 region 
0:0x00000000170c0000
[Fri Oct 10 09:20:02 2025] CPU1: Booted secondary processor 0x0000000100 
[0x512f0011]
[Fri Oct 10 09:20:02 2025] CPU1 is up
[Fri Oct 10 09:20:02 2025] Detected PIPT I-cache on CPU2
[Fri Oct 10 09:20:02 2025] GICv3: CPU2: found redistributor 200 region 
0:0x0000000017100000
[Fri Oct 10 09:20:02 2025] CPU2: Booted secondary processor 0x0000000200 
[0x512f0011]
[Fri Oct 10 09:20:02 2025] CPU2 is up
[Fri Oct 10 09:20:02 2025] Detected PIPT I-cache on CPU3
[Fri Oct 10 09:20:02 2025] GICv3: CPU3: found redistributor 300 region 
0:0x0000000017140000
[Fri Oct 10 09:20:02 2025] CPU3: Booted secondary processor 0x0000000300 
[0x512f0011]
[Fri Oct 10 09:20:02 2025] CPU3 is up
[Fri Oct 10 09:20:02 2025] Detected PIPT I-cache on CPU4
[Fri Oct 10 09:20:02 2025] GICv3: CPU4: found redistributor 10000 region 
0:0x0000000017180000
[Fri Oct 10 09:20:02 2025] CPU4: Booted secondary processor 0x0000010000 
[0x511f0011]
[Fri Oct 10 09:20:02 2025] CPU4 is up
[Fri Oct 10 09:20:02 2025] Detected PIPT I-cache on CPU5
[Fri Oct 10 09:20:02 2025] GICv3: CPU5: found redistributor 10100 region 
0:0x00000000171c0000
[Fri Oct 10 09:20:02 2025] CPU5: Booted secondary processor 0x0000010100 
[0x511f0011]
[Fri Oct 10 09:20:02 2025] CPU5 is up
[Fri Oct 10 09:20:02 2025] Detected PIPT I-cache on CPU6
[Fri Oct 10 09:20:02 2025] GICv3: CPU6: found redistributor 10200 region 
0:0x0000000017200000
[Fri Oct 10 09:20:02 2025] CPU6: Booted secondary processor 0x0000010200 
[0x511f0011]
[Fri Oct 10 09:20:02 2025] CPU6 is up
[Fri Oct 10 09:20:02 2025] Detected PIPT I-cache on CPU7
[Fri Oct 10 09:20:02 2025] GICv3: CPU7: found redistributor 10300 region 
0:0x0000000017240000
[Fri Oct 10 09:20:02 2025] CPU7: Booted secondary processor 0x0000010300 
[0x511f0011]
[Fri Oct 10 09:20:02 2025] CPU7 is up
[Fri Oct 10 09:20:02 2025] Detected PIPT I-cache on CPU8
[Fri Oct 10 09:20:02 2025] GICv3: CPU8: found redistributor 20000 region 
0:0x0000000017280000
[Fri Oct 10 09:20:02 2025] CPU8: Booted secondary processor 0x0000020000 
[0x511f0011]
[Fri Oct 10 09:20:02 2025] CPU8 is up
[Fri Oct 10 09:20:02 2025] Detected PIPT I-cache on CPU9
[Fri Oct 10 09:20:02 2025] GICv3: CPU9: found redistributor 20100 region 
0:0x00000000172c0000
[Fri Oct 10 09:20:02 2025] CPU9: Booted secondary processor 0x0000020100 
[0x511f0011]
[Fri Oct 10 09:20:02 2025] CPU9 is up
[Fri Oct 10 09:20:02 2025] Detected PIPT I-cache on CPU10
[Fri Oct 10 09:20:02 2025] GICv3: CPU10: found redistributor 20200 region 
0:0x0000000017300000
[Fri Oct 10 09:20:02 2025] CPU10: Booted secondary processor 0x0000020200 
[0x511f0011]
[Fri Oct 10 09:20:02 2025] CPU10 is up
[Fri Oct 10 09:20:02 2025] Detected PIPT I-cache on CPU11
[Fri Oct 10 09:20:02 2025] GICv3: CPU11: found redistributor 20300 region 
0:0x0000000017340000
[Fri Oct 10 09:20:02 2025] CPU11: Booted secondary processor 0x0000020300 
[0x511f0011]
[Fri Oct 10 09:20:02 2025] CPU11 is up
[Fri Oct 10 09:20:02 2025] nvme nvme0: 12/0/0 default/read/poll queues
[Fri Oct 10 09:20:02 2025] OOM killer enabled.
[Fri Oct 10 09:20:02 2025] Restarting tasks: Starting
[Fri Oct 10 09:20:02 2025] Restarting tasks: Done
[Fri Oct 10 09:20:02 2025] random: crng reseeded on system resumption
[Fri Oct 10 09:20:02 2025] PM: suspend exit
```

-- 
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/2127013

Title:
  [BUG] Lenovo ThinkPad T14s Gen 6 (Snapdragon X Elite): immediate
  resume / suspend abort (s2idle & deep)

Status in linux package in Ubuntu:
  New

Bug description:
  (NOTE: This was AI-assisted for conciseness, but human reviewed and
  edited)

  ### Summary

  **System:** Lenovo ThinkPad T14s Gen 6 (ARM64, Snapdragon X Elite X1E80100)  
  **OS:** Ubuntu 25.04 (kernel 6.14.x)  
  **Issue:** System immediately resumes from suspend (both `s2idle` and `deep`)

  ---

  ### Description

  When entering suspend (`systemctl suspend`), the laptop begins the suspend 
sequence but immediately resumes — typically within one second.  
  This happens both when suspending manually and when closing the lid. Note 
this wake happens before I reopen the lid (in all tests I wait a least 20 
seconds before re-opening).

  No crash, kernel panic, or watchdog reset occurs; the system simply
  aborts suspend before reaching a low-power state.

  ---

  ### Observed behavior

  - `PM: suspend entry (s2idle|deep)` → CPUs disabled → CPUs re-enabled → `PM: 
suspend exit`  
  - No “Wakeup: device …” messages appear.  
  - No `event_count` increases in `/sys/kernel/debug/wakeup_sources` — only 
`last_change` timestamps change.  
  - `last_change` increments for:
    - `0-003a` (I²C device, likely lid or Hall sensor)
    - `gpio-keys` (platform driver handling lid and power buttons)

  This indicates the kernel aborts suspend during entry due to a wake-
  capable input toggling state, not because of a true wake event.

  ---

  ### Tests performed

  | Test | Result |
  |------|---------|
  | Unloaded `ath12k`, `mhi_pci_generic`, `qrtr_mhi`, and `mhi` (Wi-Fi stack) | 
Same result |
  | Disabled I²C devices `1-0015`, `1-003a` | Same result |
  | Disabled lid GPIO wake (`gpio-keys`) | Same result |
  | `pm_test` (`freezer`, `devices`, `platform`, etc.) | All phases pass |
  | Verified no `event_count` increases during suspend | Confirmed |
  | Observed `last_change` updates for `0-003a` and `gpio-keys` | Confirmed |
  | Using `deep` sleep instead of `s2idle` | Same immediate resume |
  | No new boot ID or panic → not a reset | Confirmed |

  ---

  ### Interpretation

  - Suspend never actually completes; the system aborts before entering low 
power.
  - The abort is triggered by a state change on the lid sensor or its GPIO line.
  - This appears to be a firmware or kernel driver issue in the `gpio-keys` or 
I²C lid-sensor path on the Snapdragon X Elite platform.
  - The behavior matches a “spurious lid wake” or “suspend veto” rather than a 
true wakeup event.

  ---

  ### Expected behavior

  System should remain suspended until:
  - the lid is physically opened, or
  - the power button is pressed.

  ---

  ### Relevant logs

  Example (`deep` suspend attempt):

  ```
  PM: suspend entry (deep)
  Disabling non-boot CPUs ...
  psci: CPU11 killed ...
  ...
  psci: CPU1 killed ...
  Enabling non-boot CPUs ...
  PM: suspend exit
  ```

  see suspend_example.txt for full `dmesg` logs.

  ---

  ### Additional information
  ``
  $ cat /sys/power/mem_sleep
  [s2idle] deep
  ```

  
  - Kernel: `Linux 6.14.x-generic`
  - Firmware package: `linux-firmware 2025.xx.xx`
  - BIOS/UEFI version: `N42ET92W (2.22 )`
  - `/sys/kernel/debug/wakeup_sources` shows only `last_change` updates for 
`0-003a` and `gpio-keys`.

  ---

  ### Summary / Request

  Suspend aborts immediately on Lenovo T14s Gen 6 (Snapdragon X Elite) due to 
apparent spurious lid-sensor activity (`gpio-keys` / `0-003a`).  
  No device shows a real wake event; suspend never reaches a low-power state.

  Please investigate possible issues in:
  - `drivers/input/keyboard/gpio_keys.c`
  - Qualcomm/Lenovo lid sensor handling in device tree or firmware
  - Power management flow for Snapdragon X1E80100 (PSCI / PDC suspend entry)

  Logs and wakeup source diffs can be provided on request.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2127013/+subscriptions


-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to