[Solved] Setting up a Qualcomm Atheros QCA6174 adapter

I got the following errors in my dmesg output:

[    7.338878] ath10k_pci 0000:03:00.0: failed to alloc CE src ring 0: -12
[    7.345513] ath10k_pci 0000:03:00.0: failed to allocate copy engine pipe 0: -12
[    7.352820] ath10k_pci 0000:03:00.0: failed to allocate copy engine pipes: -12
[    7.360037] ath10k_pci 0000:03:00.0: failed to setup resource: -12
[    7.366349] ath10k_pci: probe of 0000:03:00.0 failed with error -12

when I tried to setup a Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter on a Raspberry Pi CM4 board.

My starting point was a build of OpenWrt 22.03.0-rc5 with the following packages added: kmod-ath10k and ath10k-firmware-qca6174

Upon looking around, I found a reference to an old bug [Kernel-packages] [Bug 1858231] Re: QCA6174 Wifi adapter not functional

How are people getting around this issue in OpenWrt?

Acting on a tip, I made the two changes in this commit: linux-firmware: Update to version 20220509 to my Makefile and rebuilt OpenWrt.
However, I still get the same error messages in my system log and the QCA6174 WiFi adapter is not functional. Issue opened.

After a bit of debugging in the kernel module, I found that the source of the error was due to this function call dma_alloc_coherent failing to return a valid address. After searching for a solution to that issue, I found this: DMA memory within 32-bit address space on RPI4 (CM4)
The solution is to add

dtoverlay=pcie-32bit-dma

to /boot/config.txt on the RPi CM4.

Better yet, for OpenWrt you can add it to the config file located here:
<buildroot>/target/linux/bcm27xx/image/config.txt and it will always be in your build.

2 Likes

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.