Launchpad has imported 15 comments from the remote bug at https://bugzilla.kernel.org/show_bug.cgi?id=222121.
If you reply to an imported comment from within Launchpad, your comment will be sent to the remote bug automatically. Read more about Launchpad's inter-bugtracker facilities at https://documentation.ubuntu.com/launchpad/user/reference/bugs/multi-project-bugs/about-multi-project-bugs/#bugs-in-external-trackers. ------------------------------------------------------------------------ On 2026-10-12T13:30:42+00:00 aliozkaya00 wrote: Created attachment 311088 dmesg, v7.2.6, WoWLAN on, magic-packet wake: failed resume With WoWLAN enabled (iw phy0 wowlan enable magic-packet), the WCN7850 is inaccessible after resume from S3 and the system freezes about 50 ms after "PM: suspend exit" (keyboard/mouse dead, clock stopped; needs a hard reset). With WoWLAN disabled, S3 suspend/resume works reliably. Kernel: mainline v7.2.6, the unmodified build from kernel.ubuntu.com/mainline (7.2.6-070206-generic). Also reproduced on mainline v7.0.14 and on Ubuntu's 7.0.0-38-generic. No out-of-tree modules loaded; /proc/sys/kernel/tainted was 0 before suspending. v7.2.6 is the newest vanilla build packaged at kernel.ubuntu.com/mainline. As far as I can tell there are no ath12k changes on linux-7.2.y after v7.2.6, and no suspend/WoW-related ath12k changes in mainline since; happy to build and test 7.2.10 or 7.3-rc if useful. Distribution: Ubuntu 26.04.1 LTS Host: desktop, ASUS ProArt X870E-CREATOR WIFI, AMD Ryzen 9 9950X3D BIOS: 2202 (04/09/2026) Wi-Fi: onboard WCN785x [17cb:1107], subsystem [105b:e10a], behind the chained chipset bridges 00:02.1 -> 03:00.0 -> 04:08.0 -> 06:00.0 -> 07:04.0 -> 09:00.0 Firmware: WLAN.HMT.1.1.c7-00108-QCAHMTSWPL_V1.0_V2.0_SILICONZ_UPSTREAM-3 Steps to reproduce: 1. iw phy0 wowlan enable magic-packet 2. systemctl suspend (mem_sleep = deep) 3. Wake with a magic packet, or with the power button Results (WoWLAN enabled): - v7.2.6: magic-packet wake 1/1 failed; power-button wake 1/2 failed (the other resumed cleanly) - v7.0.14: power-button wake 1/1 failed - Ubuntu 7.0.0-38: 7/7 failed (including both magic-packet and power-button wakes, with mem_sleep deep and s2idle) WoWLAN disabled: resumes normally on all three kernels. Workarounds tried on v7.2.6 (WoWLAN on, magic-packet wake), none helped: - d3cold_allowed=0 on 0000:09:00.0 and its upstream port 0000:07:04.0: same failure (device inaccessible, SYS ERROR, freeze) - ASPM L1 disabled on 0000:09:00.0 (link/l1_aspm=0): same failure - pcie_port_pm=off: worse, 2/2 hung earlier with no display output and nothing logged after "PM: suspend entry (deep)" Failing resume (v7.2.6): ACPI: PM: Waking up from system sleep state S3 ath12k_wifi7_pci 0000:09:00.0: Unable to change power state from D3hot to D0, device inaccessible qcom_mhi_qrtr mhi0_IPCR: failed to prepare for autoqueue transfer -22 qcom_mhi_qrtr mhi0_IPCR: PM: failed to resume early: error -22 mhi mhi0: Resuming from non M3 state (SYS ERROR) ath12k_wifi7_pci 0000:09:00.0: failed to set mhi state: RESUME(7) ath12k_wifi7_pci 0000:09:00.0: timed out while waiting for wow wakeup completion ath12k_wifi7_pci 0000:09:00.0: failed to wakeup from wow: -110 ath12k_wifi7_pci 0000:09:00.0: wmi command 16387 timeout (followed by mac80211 WARNINGs in ieee80211_reconfig, _sta_info_move_state, __sta_info_destroy_part2, ieee80211_del_chanctx, drv_stop) ieee80211 phy0: PM: failed to resume async: error -11 Full kernel logs of each cycle are attached (MAC addresses masked), including the one v7.2.6 power-button resume that succeeded, for comparison. Other configuration: a system-sleep hook disables PCI wakeup on the USB controllers and on root ports 00:02.1 and 00:02.2 before suspend (works around spurious USB PME wakeups on this board); the card has its own ACPI wake device and magic-packet wake does power the system on. Downstream report: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2170503 uname -a: Linux host 7.2.6-070206-generic #202609141300 SMP PREEMPT_DYNAMIC Mon Sep 14 15:22:52 UTC 2026 x86_64 GNU/Linux lspci -mnn: 09:00.0 "Network controller [0280]" "Qualcomm Technologies, Inc [17cb]" "WCN785x Wi-Fi 7(802.11be) 320MHz 2x2 [FastConnect 7800] [1107]" -r01 -p00 "Foxconn International, Inc. [105b]" "Device [e10a]" find /lib/firmware/ath12k/ -type f | xargs md5sum (WCN7850): 1cacb8347a9275aa29f7cd92f1fea54c /lib/firmware/ath12k/WCN7850/hw2.0/amss.bin.zst 953ba9719c55664a5d91d99b412caee1 /lib/firmware/ath12k/WCN7850/hw2.0/Notice.txt.zst 8ee2ebb8bc7c70b27d9933794e450b1b /lib/firmware/ath12k/WCN7850/hw2.0/board-2.bin.zst 2ecd46cdee0ae8de657d900dd9824ad6 /lib/firmware/ath12k/WCN7850/hw2.0/m3.bin.zst e8cb09096a24b2f286657ed26c9810f1 /lib/firmware/ath12k/WCN7850/hw2.0/ncm865/amss.bin.zst dmesg | grep ath12k (v7.2.6 boot): ath12k_wifi7_pci 0000:09:00.0: BAR 0 [mem 0xf2600000-0xf27fffff 64bit]: assigned ath12k_wifi7_pci 0000:09:00.0: enabling device (0000 -> 0002) ath12k_wifi7_pci 0000:09:00.0: Wi-Fi 7 Hardware name: wcn7850 hw2.0 ath12k_wifi7_pci 0000:09:00.0: MSI vectors: 16 ath12k_wifi7_pci 0000:09:00.0: chip_id 0x2 chip_family 0x4 board_id 0xff soc_id 0x40170200 ath12k_wifi7_pci 0000:09:00.0: fw_version 0x1103006c fw_build_timestamp 2026-03-06 09:10 fw_build_id QC_IMAGE_VERSION_STRING=WLAN.HMT.1.1.c7-00108-QCAHMTSWPL_V1.0_V2.0_SILICONZ_UPSTREAM-3 Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2170503/comments/6 ------------------------------------------------------------------------ On 2026-10-12T13:33:37+00:00 aliozkaya00 wrote: Created attachment 311089 dmesg, v7.2.6, WoWLAN on, power-button wake: failed resume Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2170503/comments/7 ------------------------------------------------------------------------ On 2026-10-12T13:34:11+00:00 aliozkaya00 wrote: Created attachment 311090 dmesg, v7.2.6, WoWLAN on, power-button wake: successful resume (for comparison) Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2170503/comments/8 ------------------------------------------------------------------------ On 2026-10-12T13:34:48+00:00 aliozkaya00 wrote: Created attachment 311091 dmesg, v7.0.14, WoWLAN on, power-button wake: failed resume Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2170503/comments/9 ------------------------------------------------------------------------ On 2026-10-12T14:30:06+00:00 jeff.johnson wrote: Sounds like the issue that was fixed with 6a5719cc3ef2 ("net: qrtr: resend HELLO on MHI resume") Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2170503/comments/11 ------------------------------------------------------------------------ On 2026-10-12T14:33:32+00:00 jeff.johnson wrote: Although this sounds like the issue fixed by the commit I mentioned, that was only in the v7.3 release candidate, so is probably not the right fix. Assigned to Baochen for further investigation Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2170503/comments/12 ------------------------------------------------------------------------ On 2026-10-13T10:25:47+00:00 aliozkaya00 wrote: Created attachment 311098 dmesg: WoWLAN S3 resume hang on ath-next (7.3-rc5) Still reproduces on ath/ath-next at 5949d1910f13 (v7.3-rc5 based, so it includes 6a5719cc3ef2). Kernel built from that tree with Ubuntu's config, no out-of-tree modules, not tainted before the first WARN. WoWLAN armed (magic-packet), S3, woken with the power button. Same sequence as before: "Unable to change power state from D3hot to D0, device inaccessible", qcom_mhi_qrtr_pm_resume_early returns -22, "mhi mhi0: Resuming from non M3 state (SYS ERROR)", WMI timeouts, mac80211 WARNs, "ieee80211 phy0: PM: failed to resume async: error -11", then the system hangs right after "PM: suspend exit". Log attached (resume- wowlan-athtest-7.3-rc5.log). I have an ath-next build set up on the affected machine, so I can test patches or extra debug options (debug_mask, MHI dynamic debug, etc.) quickly. Just let me know what you need. Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2170503/comments/13 ------------------------------------------------------------------------ On 2026-10-14T03:07:51+00:00 bqiang wrote: Comparing the failing run (att. 311089) and the successful run (att. 311090): Failing resume (311089): ath12k_wifi7_pci 0000:09:00.0: Unable to change power state from D3hot to D0, device inaccessible that error comes from the PCI core when it tries to bring 0000:09:00.0 from D3hot back to D0 and reads the device's PCI config space back as all-ones (0xffffffff). Config space reading as 0xffffffff means the PCIe link to the card is not up — the upstream switch chain (00:02.1 -> 03:00.0 -> 04:08.0 -> 06:00.0 -> 07:04.0 -> 09:00.0) has not retrained the downstream link back to L0. This happens before any ath12k resume callback runs. To confirm the link theory, could you capture the PCIe link state right after resume, for both a failing and a successful wake? For example: setpci -s 09:00.0 CAP_EXP+0x12.w # Link Status (device) setpci -s 07:04.0 CAP_EXP+0x12.w # Link Status (immediate upstream port) setpci -s 06:00.0 CAP_EXP+0x12.w setpci -s 04:08.0 CAP_EXP+0x12.w setpci -s 03:00.0 CAP_EXP+0x12.w setpci -s 00:02.1 CAP_EXP+0x12.w On the failing case the device/port should show the link not trained (and a config read of 09:00.0 returning 0xffffffff). It would also help to test pcie_aspm=off (globally, not just per-port L1) and whether that changes the failure rate. Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2170503/comments/14 ------------------------------------------------------------------------ On 2026-10-14T12:18:23+00:00 aliozkaya00 wrote: Created attachment 311111 PCIe link state before/after resume, default vs pcie_aspm=off (7 runs) Results on ath-next 5949d1910f13 (v7.3-rc5), untainted, power-button wake. I read LnkCtl/LnkSta (CAP_EXP+0x10/0x12) and the ID dword of every port in the chain from a systemd system-sleep hook, before suspend and right after resume (~11 ms after "Waking up from system sleep state S3", before the hang). 00:02.1, 03:00.0, 04:08.0 and 06:00.0 are identical before and after in every run. Only the last link changes. Default ASPM: - WoWLAN off: resumes. 07:04.0 LnkSta 0x3013 before and after, 09:00.0 readable. - WoWLAN armed: 3/3 hang. 07:04.0 LnkSta 0x3013 -> 0x1011 (DLL Link Active clear, Link Training clear, speed back to 2.5 GT/s). 09:00.0 reads 0xffffffff. pcie_aspm=off ("PCIe ASPM is disabled"): - WoWLAN armed: 3/3 resume cleanly (37-44 s sleeps). 07:04.0 stays at 0x3013, 09:00.0 at 0x1013, and Wi-Fi reconnects. Note that pcie_aspm=off doesn't turn L1 off on this board. The BIOS leaves ASPM L1 enabled, so LnkCtl bits 1:0 = 2 in both cases. What differs is Common Clock Configuration (bit 6): the kernel sets it in the default case (downstream ports 0x0c42, upstream ports/endpoint 0x0042), and it stays clear with pcie_aspm=off (0x0c02 / 0x0002), on every link in the chain. I didn't capture L1 PM Substates control. I can add that, or anything else, to the hook. (Turning L1 off via sysfs l1_aspm=0 on 7.2.6 earlier didn't help either.) All 7 runs are in the attached file. The hook's lines start with "pcielink:". Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2170503/comments/15 ------------------------------------------------------------------------ On 2026-10-14T12:24:36+00:00 aliozkaya00 wrote: Created attachment 311112 dmesg: pcie_aspm=off, WoWLAN armed, magic-packet wake -> hang One more run with pcie_aspm=off, WoWLAN armed, but woken by an actual magic packet instead of the power button: it hangs, with the same signature as the default case. 07:04.0 LnkSta 0x3013 -> 0x1011, 09:00.0 reads 0xffffffff, MHI SYS ERROR, "failed to wakeup from wow: -110". Magic-packet wake also failed on 7.2.6 earlier. So pcie_aspm=off only helps when something other than the card wakes the system. Log attached. Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2170503/comments/16 ------------------------------------------------------------------------ On 2026-10-15T03:05:40+00:00 bqiang wrote: I tested the same WCN7850 (same firmware, WLAN.HMT.1.1.c7-00108) on a different machine where the card sits directly behind a single Intel root port. WoWLAN armed with magic-packet, woken by a real magic packet: ... mhi mhi0: Entered with PM state: M3, MHI state: M3 ath12k_wifi7_pci 0000:02:00.0: wow wakeup host reason 10 WOW_REASON_RECV_MAGIC_PATTERN ... Resume is clean, no "non M3 state (SYS ERROR)", no "device inaccessible", Wi-Fi reconnects. So the firmware's WoW / magic-packet path is working. The difference from your setup: mine was s2idle, your failure is in S3 (deep). From your latest logs, last link in the chain (07:04.0 ↔ 09:00.0) comes back with DLL Link Active cleared (0x3013 → 0x1011) and config reads return 0xffffffff. That inaccessible-device state is what then cascades into the MHI SYS ERROR and the WoW failure — all downstream of the link not being up. To pin down whether it's the PCIe link not retraining (platform) vs. the device not coming back from D3cold/D3hot (firmware), could you try forcing a retrain on the failing resume? Right after resume, on the downstream port: # set Retrain Link (LnkCtl bit5) on 07:04.0, then re-read LnkSta setpci -s 07:04.0 CAP_EXP+0x10.w=$(printf %04x $((0x$(setpci -s 07:04.0 CAP_EXP+0x10.w) | 0x20))) setpci -s 07:04.0 CAP_EXP+0x12.w # check if DLL Link Active (bit13) goes 0->1 setpci -s 09:00.0 00.l # check if it stops reading ffffffff - If retrain brings the link back (DLL active, 09:00.0 readable) → the link just wasn't retrained on resume (platform/PCI side). - If it still reads 0xffffffff → the device didn't come back (firmware side). That result may tell us which side to fix. Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2170503/comments/17 ------------------------------------------------------------------------ On 2026-10-15T13:31:04+00:00 aliozkaya00 wrote: Created attachment 311121 pstore oops after failed resume: ath12k_pci_remove -> mhi_gen_tre page fault (ath-next, retrain run) Retrain result (ath-next 5949d1910f13, S3, WoWLAN armed, power-button wake): no effect. Right after resume the hook set Retrain Link on 07:04.0 (setpci CAP_EXP+0x10.w=0020:0020) and re-read for 123 ms: pcielink: post 07:04.0 id=43f51022 lnkctl=0c42 lnksta=1011 pcielink: post 09:00.0 id=ffffffff lnkctl=none lnksta=none pcielink: retrain +3ms 07:04.0 lnksta=1011 09:00.0 id=ffffffff pcielink: retrain +8ms 07:04.0 lnksta=1011 09:00.0 id=ffffffff pcielink: retrain +15ms 07:04.0 lnksta=1011 09:00.0 id=ffffffff pcielink: retrain +24ms 07:04.0 lnksta=1011 09:00.0 id=ffffffff pcielink: retrain +37ms 07:04.0 lnksta=1011 09:00.0 id=ffffffff pcielink: retrain +69ms 07:04.0 lnksta=1011 09:00.0 id=ffffffff pcielink: retrain +123ms 07:04.0 lnksta=1011 09:00.0 id=ffffffff Link Training never sets and DLL Link Active stays clear. So it doesn't look like a link that merely wasn't retrained. The downstream port doesn't seem to see the device at all. I also found what actually hangs the machine. Every failed resume since I started testing left an EFI pstore oops (Ubuntu 7.0.0-38, mainline 7.0.14 and 7.2.6, ath-next), all with the same trace. After resume, an ACPI hotplug notify makes acpiphp remove the unreachable 09:00.0, and ath12k's remove path faults in MHI: BUG: unable to handle page fault for address: ffffcbff4be09034 Workqueue: kacpi_hotplug acpi_hotplug_work_fn RIP: 0010:mhi_gen_tre+0x3f/0x220 [mhi] mhi_queue+0x78/0x170 [mhi] mhi_queue_skb+0x55/0x80 [mhi] qcom_mhi_qrtr_send+0x68/0x140 [qrtr_mhi] qrtr_node_enqueue+0xfb/0x570 [qrtr] qrtr_sendmsg+0x178/0x300 [qrtr] kernel_sendmsg+0x2b/0x40 qmi_send_message.isra.0+0xe7/0x140 [qmi_helpers] qmi_send_request+0x1f/0x40 [qmi_helpers] ath12k_qmi_wlanfw_mode_send+0xa0/0x1b0 [ath12k] ath12k_qmi_firmware_stop+0x1f/0x60 [ath12k] ath12k_core_stop+0xa3/0xb0 [ath12k] ath12k_core_hw_group_cleanup+0x70/0xd0 [ath12k] ath12k_pci_remove+0x66/0x2c0 [ath12k] pci_device_remove+0x4b/0xb0 ... pci_stop_and_remove_bus_device+0x16/0x30 trim_stale_devices+0x145/0x180 (nested 5x, one per bridge) acpiphp_check_bridge.part.0+0x136/0x180 acpiphp_hotplug_notify+0x18e/0x2e0 acpi_device_hotplug+0xa1/0x4b0 So once the card is gone and MHI is in SYS ERROR, ath12k_pci_remove still sends WLAN_MODE_OFF over QMI/MHI and touches ring memory that is no longer mapped. Without that oops this would presumably end with Wi-Fi gone, not a frozen machine. The full dump from the ath-next run is attached, including the pcielink/retrain lines. Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2170503/comments/18 ------------------------------------------------------------------------ On 2026-10-15T13:52:27+00:00 aliozkaya00 wrote: Created attachment 311123 S3 without no-usb-pme-wake hook (same oops) + 2x s2idle (survives, no magic-packet wake) Two more results on ath-next: 1. Retrain again, this time with my no-usb-pme-wake system-sleep hook disabled from a fresh boot. That hook clears PCI wakeup on the USB controllers and the root ports above them, including 00:02.1, to stop spurious USB PME wakes from S3, and every earlier run had it active. Same result: 07:04.0 LnkSta stays 0x1011 for 126 ms after Retrain Link, 09:00.0 reads 0xffffffff, and the same acpiphp -> ath12k_pci_remove -> mhi_gen_tre oops follows. So the hook isn't a factor. 2. s2idle, WoWLAN armed, 2 runs (the second with the hook off and 00:02.1 wakeup enabled): resume is clean both times. The link stays up (07:04.0 0x3013, 09:00.0 0x1013) and Wi-Fi reconnects. But a magic packet does not wake the system from s2idle, so both runs had to be woken with the power button. NetworkManager keeps the association up through suspend. In S3 the same magic packet does wake the system (the card's ACPI wake device NV00 is enabled). All three runs are in the attached file. Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2170503/comments/19 ------------------------------------------------------------------------ On 2026-10-16T01:54:28+00:00 bqiang wrote: Have you ever tried other WoWLAN triggers, like disconnect, in either s2idle mode or deep mode ? 1. connect wifi to an AP 2. iw phy0 wowlan enable disconnect 3. put system to suspend 4. power off AP 5. system is expected to wakeup Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2170503/comments/20 ------------------------------------------------------------------------ On 2026-10-24T21:22:49+00:00 aliozkaya00 wrote: Created attachment 311277 WoWLAN disconnect trigger: s2idle (no wake, FW reports AP_ASSOC_LOST) + S3 (wakes, same hang/oops) Tested the disconnect trigger in both modes, following your steps. Kernel: ath-next 5949d1910f13 rebuilt with CONFIG_ATH12K_DEBUG, debug_mask=0x8002, pm_debug_messages=1. Both runs are in the attached file. s2idle (no-usb-pme-wake hook disabled, 00:02.1 and 09:00.0 power/wakeup enabled): the system did not wake. After ~95 s I woke it with the power button. The firmware did notice the AP going away: queued "wmi roam event vdev 0 reason 2" (beacon miss) events and "wow wakeup host reason 1 WOW_REASON_AP_ASSOC_LOST" arrive right after resume. But the only wakeup IRQs logged are IRQ 9 ("ACPI: PM: ACPI fixed event wakeup", the power button) and IRQ 31. IRQ 31 is the PME interrupt of 00:02.2, the spurious USB PME port, not 00:02.1 above the WLAN card. Resume was clean and Wi-Fi reconnected. So in s2idle the firmware detects the event, but its wakeup never reaches the host, same as the magic-packet runs in comment 12. deep (hook active, as in all earlier S3 runs): the system woke by itself shortly after the AP was powered off, so disconnect wake works in S3. Then the same failure as before: 07:04.0 LnkSta 0x1011, 09:00.0 reads 0xffffffff, Retrain Link has no effect, mac80211 WARNs, "wiphy_resume returns -11", then the acpiphp -> ath12k_pci_remove -> mhi_gen_tre page fault. This time the journal lost all kernel lines after "PM: suspend entry", so the S3 part of the attachment is the EFI pstore dump. Its beginning is truncated. So the trigger type makes no difference. In S3 the card wakes the system but is gone from the bus after resume. In s2idle the card survives resume, but its wakeup never reaches the host. Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2170503/comments/21 ** Changed in: linux Status: Unknown => In Progress ** Changed in: linux Importance: Unknown => Medium -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2170503 Title: ath12k WCN7850: system hangs on resume from suspend when WoWLAN magic- packet is enabled To manage notifications about this bug go to: https://bugs.launchpad.net/linux/+bug/2170503/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
