You are not logged in.
Hello Arch Community,
I'm running into two specific issues with a new wcn7850 (Quectel NCM825-based) Wi-Fi 7 card on kernel 6.17.4-arch2-1.
My 5GHz (VHT) connection is stable, but I have to manually fix my regulatory domain, and dmesg shows a persistent rx buf error. I'm trying to understand why these two things are happening.
---
Issue 1:
failed to enqueue rx buf: -28My primary concern is this error, which appears right after the driver loads the firmware:
$ sudo dmesg | grep ath12k_pci
...
[ 4.327825] ath12k_pci 0000:aa:00.0: Hardware name: wcn7850 hw2.0
...
[ 4.890519] ath12k_pci 0000:aa:00.0: fw_version 0x110cffff ...
[ 5.113118] ath12k_pci 0000:aa:00.0: failed to enqueue rx buf: -28
...My connection seems stable (0% packet loss on ping), but this error (-28 is ENOSPC) looks serious.
Question: Is this a known bug with the wcn7850 chip on recent kernels? What does it actually mean for the card's performance, and is there a known fix?
---
Issue 2: Manual regdomain required (Global '00' conflict)
Separately, my 6GHz band was not loading. I discovered the system was in a conflicting state:
$ iw reg get
global
country 00: DFS-UNSET <--- THE PROBLEM
...
phy#0 (self-managed)
country DE: DFS-ETSI <--- CORRECTLY DETECTED
...The ath12k driver correctly detected DE (Germany) from my AP, but the global setting remained 00, which disabled 6GHz.
My Fix: I had to install crda and create /etc/conf.d/wireless-regdom with WIRELESS_REGDOM="DE". After a reboot, this is now fixed:
$ iw reg get
global
country DE: DFS-ETSI <--- NOW FIXED
...
phy#0 (self-managed)
country DE: DFS-ETSI
...This fix also successfully enabled the 6GHz band in iw list (it now shows Band 4 starting at 5955.0 MHz).
Question: Why was this manual override necessary? Why didn't the system (CRDA or the kernel) automatically adopt the DE region that the phy#0 device clearly detected? It seems the automatic detection is broken.
---
Hardware Details:
$ lspci -knn -s aa:00.0
aa:00.0 Network controller [0280]: Qualcomm Technologies, Inc WCN785x Wi-Fi 7(802.11be) 320MHz 2x2 [FastConnect 7800] [17cb:1107] (rev 01)
Subsystem: Quectel Wireless Solutions Co., Ltd. Device [1eac:8000]
Kernel driver in use: ath12k_pci
Kernel modules: ath12kThanks for any insights into these two issues!
Update:
I did some further testing regarding the failed to enqueue rx buf: -28 error.
1. I temporarily disabled VT-d (IOMMU) in UEFI. After rebooting, the failed to enqueue rx buf: -28 error was completely gone from dmesg.
2. I then re-enabled VT-d in UEFI. Crucially, after a simple reboot, the error did not immediately return. However, after performing a cold boot (full shutdown, wait a few minutes, power on), the failed to enqueue rx buf: -28 error immediately reappeared in dmesg on this boot.
Conclusion: This confirms that the failed to enqueue rx buf: -28 error with the ath12k driver for the wcn7850 chip is specifically triggered when VT-d (IOMMU) is enabled in UEFI, and seems dependent on the hardware initialization state during a cold boot. The UEFI update I performed earlier did not fix this issue; only disabling VT-d does (or perhaps a warm reboot mitigates it temporarily?).
Unfortunately, I need VT-d enabled for my eGPU passthrough setup, so disabling it is not a viable long-term solution for me.
Is this a known incompatibility between ath12k (specifically for wcn7850) and IOMMU, possibly related to cold boot initialization? Are there any kernel parameters or workarounds known, other than disabling VT-d or waiting for a kernel update?
Last edited by BollerwagenPicard (2025-10-23 16:40:52)
Offline
hi. crda is obsoled.remove it. install regdb. (not know exact name).
wpa_supplicant(and others?) has regulatory knob.
put Germany there once and all.(in config file)
other:
if it is not caused package drops(when hight load) just ignore it.
otherwise file a bug againist kernel.
VT-d claims dma buffer for virtualize NIC and/or passthrought. (ehh: my shot)
PS: its will be good to having ability to enable/disable VT-d per device basis:)
Last edited by unixman (2025-10-24 04:58:15)
Offline
Okay I removed CRDA und switched to wireless-regdb. Works fine as well.
Thank you for the hint. I leave VT-d disabled for now... (I don't like errors in my logs and I use the eGPU only 5-6 times a year in a VM)
It was one line in /etc/conf.d/wireless-regdom
Any idea how to tell NetworkManger that there is 6GHz?
Offline
Ask for google "Network Manager 6 GHz" then check pages: eg
https://serverhost.com/blog/networkmana … d-to-know/
Last edited by unixman (2025-10-24 11:33:03)
Offline
I did check the suggested blog post and general information about configuring 6 GHz with NetworkManager. While helpful for standard setups, they don't address my specific issue.
My problem isn't how to configure 6 GHz, but that NetworkManager doesn't offer the 6 GHz option at all (not in the GUI, nmtui, or nmcli show capabilities), even though iw list confirms the kernel has loaded the 6 GHz band correctly.
% pacman -Q networkmanager
networkmanager 1.54.1-1
Offline
Wi-Fi 7 is new things. support adds to tools slowly and incrementaly.
Network Manager able to use wpa_supplicant or iwd as backend? what your choose?
enable Wi-Fi 7 stuff for that backend. eg:
https://unix.stackexchange.com/question … 7-802-11be
Maybe you have to use that backend directly and/or cli only tools until supports added to GUI elements.
Offline
My NetworkManager setup uses wpa_supplicant as the backend. I haven't explicitly chosen iwd, so I'm using the default configuration provided by Arch Linux.
Offline
Offline