Hi,
We are using an ATH12K Wi‑Fi module on an i.MX95‑based system, connected via the PCIe2 instance.
On a kernel based on linux-imx lf‑6.12.y this setup fails, whereas with a kernel based on lf‑6.6.y it works as expected.
The kernel driver successfully requests and receives 16 MSI interrupts. However, it subsequently fails to bring up the Wi‑Fi module:
[ 5.888139] ath12k_pci 0001:01:00.0: Adding to iommu group 5
[ 5.888506] ath12k_pci 0001:01:00.0: BAR 0 [mem 0xa10000000-0xa101fffff 64bit]: assigned
[ 5.888553] ath12k_pci 0001:01:00.0: enabling device (0000 -> 0002)
[ 5.889315] ath12k_pci 0001:01:00.0: MSI vectors: 16
[ 5.889334] ath12k_pci 0001:01:00.0: Hardware name: wcn7850 hw2.0
[ 6.475718] ath12k_pci 0001:01:00.0: chip_id 0x2 chip_family 0x4 board_id 0xff soc_id 0x40170200
[ 6.475743] ath12k_pci 0001: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
[ 7.647106] ath12k_pci 0001:01:00.0: failed to receive control response completion, polling..
[ 8.675241] ath12k_pci 0001:01:00.0: Service connect timeout
[ 8.681002] ath12k_pci 0001:01:00.0: failed to connect to HTT: -110
[ 8.692180] ath12k_pci 0001:01:00.0: failed to start core: -110
There was a related discussion on the kernel mailing list [1] with a different PCIe device, but it has not yet led to a working configuration for our system.
What would be the best way to proceed?
Thank you for your support.
Max
[1] https://lore.kernel.org/all/1819305.VLH7GnMWUR@steina-w/
Hello,
The i,MX95 is in early stage and some configuration are not in design. However your i.MX95 with ATH12K via PCIe2 failing on
lf-6.12.y but working on lf-6.6.y suggests a regression or driver interaction change in newer kernel's PCIe or Wi-Fi stack, likely involving PCIe power management (ASPM), MSI mapping, or specific PCIe endpoint quirks for the ATH12K, often resolved by kernel patches or disabling ASPM in boot args for newer kernels; check dmesg for PCIe errors, compare devicetree, and look for related commits in NXP/Linux kernel mailing lists. dmesg)dmesg on the failing lf-6.12.y kernel.ath12k firmware is loaded correctly and if there are any errors during initialization. pcie_aspm=off to your kernel boot arguments (e.g., in U-Boot or GRUB) and test again. .dtb files). Look for changes in the PCIe node for pci2, especially related to interrupts, power domains, or compatibility properties. ath12k), mac80211, or core PCIe/ARM code in lf-6.12.y might have introduced a change breaking your setup.ath12k, i.MX95, and newer kernels (6.12+). proc/interrupts: See if the interrupt distribution or count differs between kernels. dmesg and try disabling ASPM; these are the most frequent culprits for PCIe Wi-Fi failures in newer kernels on embedded platformsWhile the suggestions were good pointers to debug the issue I couldn't find the solution, i.e. not all MSI IRQ vectors triggered the IRQ routines in the driver.
I ended up working around the issue by changing the ath12k driver to only request one MSI IRQ.
Note that current Linux master does not have the issue.
Regards
Max