[SRU][R][PATCH 0/1] UBUNTU: SAUCE: wifi: ath12k: avoid MHI deinit during suspend

ChunAn Wu an.wu at canonical.com
Mon Jul 13 08:33:53 UTC 2026


BugLink: https://bugs.launchpad.net/bugs/2160183

SRU Justification:

[ Impact ]

On HP EliteBook 8 G1a 13 inch Notebook AI PC with Qualcomm WCN7850
Wi-Fi, suspend itself is fast but resume takes about 20.8 seconds.
FWTS reports ResumeTooLong and the kernel log shows ath12k/MHI resume
failures:

  mhi mhi0: MHI did not load image over BHI, ret: -5
  ath12k_pci 0000:01:00.0: failed to set mhi state: POWER_ON(2)
  ath12k_pci 0000:01:00.0: failed to start mhi: -110
  ath12k_pci 0000:01:00.0: failed to set mhi state INIT(0) in current mhi state (0x1)
  ath12k_pci 0000:01:00.0: timeout while waiting for restart complete

The user-visible delay comes from ath12k waiting
ATH12K_RESET_TIMEOUT_HZ during resume after MHI power-up fails.

[ Fix ]

Apply a SAUCE patch based on the upstream mailing-list proposal:

  [PATCH] wifi: ath12k: fix CMA error and MHI state mismatch during resume
  https://lore.kernel.org/all/20260202151720.49904-1-bjsaikiran@gmail.com/

The patch keeps MHI DEINIT out of the suspend path when
MHI_POWER_OFF_KEEP_DEV is used, and avoids repeating MHI INIT when the
INIT state bit is already set.

This patch is not merged upstream yet, therefore it is marked as
UBUNTU: SAUCE while it is validated on the affected platform.

[ Test Plan ]

1. Install the test kernel on the affected HP EliteBook 8 G1a system.
2. Boot the patched kernel and confirm:

     uname -r

   reports the patched Resolute kernel.
3. Run the original failing FWTS flow:

     sudo fwts s3 --s3-sleep-delay=30 --s3-device-check --s3-device-check-delay=45

4. Confirm resume time is below the FWTS 15 second threshold.
5. Confirm dmesg no longer contains:

     MHI did not load image over BHI
     failed to set mhi state INIT(0) in current mhi state (0x1)
     timeout while waiting for restart complete

6. Confirm Wi-Fi can associate and pass traffic after resume.

[ Where problems could occur ]

The change affects ath12k PCI suspend/resume handling for devices using
MHI. If a platform actually cuts WLAN power during suspend, avoiding
MHI INIT during resume may skip register reprogramming that would
otherwise be needed. This is the upstream concern raised by Qualcomm.

The risk is limited to ath12k MHI suspend/resume paths. Full power-down
paths still call MHI DEINIT as before. Validation should include several
s2idle cycles and Wi-Fi traffic after resume.

[ Other Info ]

This is a Resolute patch generated from origin/master-next
(linux 7.0.0-28.28, resolute). The patch is not yet accepted upstream;
latest upstream thread reply as of analysis time was from Qualcomm on
2026-02-03, describing the proposal as a workaround pending a
root-cause fix.

Saikiran (1):
  UBUNTU: SAUCE: wifi: ath12k: avoid MHI deinit during suspend

 drivers/net/wireless/ath/ath12k/mhi.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

-- 
2.34.1



More information about the kernel-team mailing list