Bug 219522 - ath12k: wrong values in self-managed regdb?
Summary: ath12k: wrong values in self-managed regdb?
Status: NEW
Alias: None
Product: Drivers
Classification: Unclassified
Component: network-wireless (show other bugs)
Hardware: All Linux
: P3 enhancement
Assignee: drivers_network-wireless@kernel-bugs.osdl.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-11-23 19:49 UTC by Alejandro Juega
Modified: 2025-03-07 15:51 UTC (History)
2 users (show)

See Also:
Kernel Version:
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description Alejandro Juega 2024-11-23 19:49:53 UTC
platform: APU6B4 with Emwicon WMX 8402 (QCN9274) (https://www.emwicon.com/products)

system: IPFire (self compiled) with Linux Kernel 6.11.1

driver: ath12k driver from Linux Kernel

firmware: QCN9274 hw2.0: 1.3.1: add WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1
from https://git.codelinaro.org/clo/ath-firmware/ath12k-firmware/-/tree/main/QCN9274/hw2.0
Also tried the "official" one from the linux-firmware.git.

I'm using on of the board files extracted from board-2.bin since Emwicon has not provided any adjusted / individual board files yet.

I'm able to set the country code manually but hostapd will always use "phy#0 (self-managed)#" instead of global. The problem is that the "self-managed" values differ from the "global" ones (which seem so be the official ones from the linux kernel) and therefor limiting channel-width and frequencies (e.g. no 160 Mhz in 5 Ghz and slightly different frequencies over all) because values differ.

output of "iw reg get"

for Germany (where I'm located)

global
country DE: DFS-ETSI
        (2400 - 2483 @ 40), (N/A, 20), (N/A)
        (5150 - 5250 @ 80), (N/A, 23), (N/A), NO-OUTDOOR, AUTO-BW
        (5250 - 5350 @ 80), (N/A, 20), (0 ms), NO-OUTDOOR, DFS, AUTO-BW
        (5470 - 5725 @ 160), (N/A, 26), (0 ms), DFS
        (5725 - 5875 @ 80), (N/A, 13), (N/A)
        (5945 - 6425 @ 160), (N/A, 23), (N/A), NO-OUTDOOR
        (57000 - 66000 @ 2160), (N/A, 40), (N/A)

phy#0 (self-managed)
country DE: DFS-ETSI
        (2402 - 2472 @ 40), (N/A, 20), (N/A)
        (5170 - 5250 @ 80), (N/A, 23), (N/A), NO-OUTDOOR, AUTO-BW
        (5250 - 5330 @ 80), (N/A, 23), (0 ms), NO-OUTDOOR, DFS, AUTO-BW
        (5490 - 5590 @ 80), (N/A, 24), (0 ms), DFS, AUTO-BW
        (5590 - 5650 @ 40), (N/A, 24), (600000 ms), DFS, AUTO-BW
        (5650 - 5710 @ 40), (N/A, 24), (0 ms), DFS, AUTO-BW
        (5945 - 6425 @ 320), (N/A, 23), (N/A), NO-OUTDOOR, AUTO-BW

example for US

country US: DFS-FCC
        (902 - 904 @ 2), (N/A, 30), (N/A)
        (904 - 920 @ 16), (N/A, 30), (N/A)
        (920 - 928 @ 8), (N/A, 30), (N/A)
        (2400 - 2472 @ 40), (N/A, 30), (N/A)
        (5150 - 5250 @ 80), (N/A, 23), (N/A), AUTO-BW
        (5250 - 5350 @ 80), (N/A, 24), (0 ms), DFS, AUTO-BW
        (5470 - 5730 @ 160), (N/A, 24), (0 ms), DFS
        (5730 - 5850 @ 80), (N/A, 30), (N/A), AUTO-BW
        (5850 - 5895 @ 40), (N/A, 27), (N/A), NO-OUTDOOR, AUTO-BW, PASSIVE-SCAN
        (5925 - 7125 @ 320), (N/A, 12), (N/A), NO-OUTDOOR, PASSIVE-SCAN
        (57240 - 71000 @ 2160), (N/A, 40), (N/A)

phy#0 (self-managed)
country US: DFS-FCC
        (2402 - 2472 @ 40), (6, 30), (N/A)
        (5170 - 5250 @ 80), (6, 30), (N/A), AUTO-BW
        (5250 - 5330 @ 80), (6, 24), (0 ms), DFS, AUTO-BW
        (5490 - 5730 @ 240), (6, 24), (0 ms), DFS, AUTO-BW
        (5735 - 5895 @ 160), (6, 30), (N/A), AUTO-BW
        (5925 - 7125 @ 320), (N/A, 30), (N/A), NO-OUTDOOR, AUTO-BW

example for India:

global
country IN: DFS-UNSET
        (2402 - 2482 @ 40), (N/A, 30), (N/A)
        (5150 - 5250 @ 80), (N/A, 30), (N/A)
        (5250 - 5350 @ 80), (N/A, 24), (0 ms), DFS
        (5470 - 5725 @ 160), (N/A, 24), (0 ms), DFS
        (5725 - 5875 @ 80), (N/A, 30), (N/A)

phy#0 (self-managed)
country IN: DFS-FCC
        (2402 - 2472 @ 40), (N/A, 30), (N/A)
        (5170 - 5250 @ 80), (N/A, 30), (N/A), AUTO-BW
        (5250 - 5330 @ 80), (N/A, 24), (0 ms), DFS, AUTO-BW
        (5490 - 5730 @ 240), (N/A, 24), (0 ms), DFS, AUTO-BW
        (5735 - 5855 @ 80), (N/A, 30), (N/A), AUTO-BW
        (5855 - 5875 @ 20), (N/A, 30), (N/A), AUTO-BW

The country always changes for both, global and self-managed but the values in the latter one are either obsolete or just wrong.

Is there a possibility to force global or ignore self-managed or at best correct / update self-managed?
Comment 1 Serhii N. 2024-12-27 23:01:24 UTC
Hello I can confirm exactly the same problem with WCN7850 (another ath12k device) - currently it does not allow to change region due bug in driver then I found this patches https://patchwork.kernel.org/project/linux-wireless/list/?series=920685 and applied it manually to kernel 6.12.6 here my built and patch adaptation https://github.com/serhii-nakon/new_debian_linux and it works well

And it also changes reg domain but with incorrect frequencies (but the same as described here before)

Also I noticed that 5GHz AP signal pretty weak - I mean that it can lose signal just behind 1 wall (I think that internal regdb contain incorrect power limitations - in my country allowed 100mW)

And one more issue related I thing internal regdb - it does not allow to use 160MHz width on 5GHz AP that's why I think it fail starting DFS scanning that need  in my country to properly use this bandwidth.

Here iw reg get logs 
phy0 it ath9 device that works well
phy1 it WCN7850


Example for US

global
country US: DFS-FCC
	(902 - 904 @ 2), (N/A, 30), (N/A)
	(904 - 920 @ 16), (N/A, 30), (N/A)
	(920 - 928 @ 8), (N/A, 30), (N/A)
	(2400 - 2472 @ 40), (N/A, 30), (N/A)
	(5150 - 5250 @ 80), (N/A, 23), (N/A), AUTO-BW
	(5250 - 5350 @ 80), (N/A, 24), (0 ms), DFS, AUTO-BW
	(5470 - 5730 @ 160), (N/A, 24), (0 ms), DFS
	(5730 - 5850 @ 80), (N/A, 30), (N/A), AUTO-BW
	(5850 - 5895 @ 40), (N/A, 27), (N/A), NO-OUTDOOR, AUTO-BW, PASSIVE-SCAN
	(5925 - 7125 @ 320), (N/A, 12), (N/A), NO-OUTDOOR, PASSIVE-SCAN
	(57240 - 71000 @ 2160), (N/A, 40), (N/A)

phy#0
country US: DFS-FCC
	(902 - 904 @ 2), (N/A, 30), (N/A)
	(904 - 920 @ 16), (N/A, 30), (N/A)
	(920 - 928 @ 8), (N/A, 30), (N/A)
	(2400 - 2472 @ 40), (N/A, 30), (N/A)
	(5150 - 5250 @ 80), (N/A, 23), (N/A), AUTO-BW
	(5250 - 5350 @ 80), (N/A, 24), (0 ms), DFS, AUTO-BW
	(5470 - 5730 @ 160), (N/A, 24), (0 ms), DFS
	(5730 - 5850 @ 80), (N/A, 30), (N/A), AUTO-BW
	(5850 - 5895 @ 40), (N/A, 27), (N/A), NO-OUTDOOR, AUTO-BW, PASSIVE-SCAN
	(5925 - 7125 @ 320), (N/A, 12), (N/A), NO-OUTDOOR, PASSIVE-SCAN
	(57240 - 71000 @ 2160), (N/A, 40), (N/A)

phy#1 (self-managed)
country US: DFS-FCC
	(2402 - 2472 @ 40), (6, 30), (N/A)
	(5170 - 5250 @ 80), (6, 24), (N/A), AUTO-BW
	(5250 - 5330 @ 80), (6, 24), (0 ms), DFS, AUTO-BW
	(5490 - 5730 @ 160), (6, 24), (0 ms), DFS, AUTO-BW
	(5735 - 5855 @ 80), (6, 30), (N/A), AUTO-BW
	(5855 - 5925 @ 40), (6, 30), (N/A), NO-OUTDOOR, AUTO-BW

Example for UA

global
country UA: DFS-ETSI
	(2400 - 2483 @ 40), (N/A, 20), (N/A), NO-OUTDOOR
	(5150 - 5250 @ 80), (N/A, 20), (N/A), NO-OUTDOOR, AUTO-BW
	(5250 - 5350 @ 80), (N/A, 20), (0 ms), NO-OUTDOOR, DFS, AUTO-BW
	(5470 - 5725 @ 160), (N/A, 20), (0 ms), NO-OUTDOOR, DFS
	(5725 - 5850 @ 80), (N/A, 20), (N/A), NO-OUTDOOR
	(57000 - 66000 @ 2160), (N/A, 16), (N/A), NO-OUTDOOR

phy#0
country UA: DFS-ETSI
	(2400 - 2483 @ 40), (N/A, 20), (N/A), NO-OUTDOOR
	(5150 - 5250 @ 80), (N/A, 20), (N/A), NO-OUTDOOR, AUTO-BW
	(5250 - 5350 @ 80), (N/A, 20), (0 ms), NO-OUTDOOR, DFS, AUTO-BW
	(5470 - 5725 @ 160), (N/A, 20), (0 ms), NO-OUTDOOR, DFS
	(5725 - 5850 @ 80), (N/A, 20), (N/A), NO-OUTDOOR
	(57000 - 66000 @ 2160), (N/A, 16), (N/A), NO-OUTDOOR

phy#1 (self-managed)
country UA: DFS-ETSI
	(2402 - 2482 @ 40), (N/A, 20), (N/A)
	(5170 - 5250 @ 80), (N/A, 23), (N/A), AUTO-BW
	(5250 - 5330 @ 80), (N/A, 23), (0 ms), DFS, AUTO-BW
	(5490 - 5590 @ 80), (N/A, 24), (0 ms), DFS, AUTO-BW
	(5590 - 5650 @ 40), (N/A, 24), (600000 ms), DFS, AUTO-BW
	(5650 - 5710 @ 40), (N/A, 24), (0 ms), DFS, AUTO-BW
	(5735 - 5835 @ 80), (N/A, 24), (N/A), AUTO-BW
Comment 2 Casulo 2025-03-07 15:51:23 UTC
Is this the reason why QCNCM865 does not work in AP mode with hostapd? Because it does not allow for country change/set up?

Note You need to log in before you can comment on or make changes to this bug.