regulatory domain updated by ATH is not recognized by driver ath10k

sparks71 at gmx.de sparks71 at gmx.de
Fri Nov 6 17:18:48 EST 2020


Hello,

i have a small problem with my QCA9984 (QNAP QWA-AC2600) card.

-[0000:00]-+-00.0  Intel Corporation Xeon E3-1200 v6/7th Gen Core 
Processor Host Bridge/DRAM Registers
            +-01.0-[01-04]----00.0-[02-04]--+-03.0-[03]----00.0 Qualcomm 
Atheros QCA9984 802.11ac Wave 2 Wireless Network Adapter
            |                               \-07.0-[04]----00.0 Qualcomm 
Atheros QCA9984 802.11ac Wave 2 Wireless Network Adapter


tested with kernel 5.8 ubuntu and the wireless backport driver 5.8.1
and "ath" updates the regulatory domain but this is not recognized by 
ath10k

The card unfortunately has 0x0 in EEPROM and is mapped to the Atheros 
world domain


Nov 06 15:49:06 sparks kernel: ath: EEPROM regdomain sanitized
Nov 06 15:49:06 sparks kernel: ath: EEPROM regdomain: 0x64
Nov 06 15:49:06 sparks kernel: ath: EEPROM indicates we should expect a 
direct regpair map
Nov 06 15:49:06 sparks kernel: ath: Country alpha2 being used: 00
Nov 06 15:49:06 sparks kernel: ath: Regpair used: 0x64


if I now connect the card with an AP, the regulatory domain will be 
updated accordingly

ath: EEPROM regdomain: 0x8114
Nov 06 15:51:08 sparks kernel: ath: EEPROM indicates we should expect a 
country code
Nov 06 15:51:08 sparks kernel: ath: doing EEPROM country->regdmn map search
Nov 06 15:51:08 sparks kernel: ath: country maps to regdmn code: 0x37
Nov 06 15:51:08 sparks kernel: ath: Country alpha2 being used: DE
Nov 06 15:51:08 sparks kernel: ath: Regpair used: 0x37
Nov 06 15:51:08 sparks kernel: ath: regdomain 0x8114 dynamically updated 
by country element

but unfortunately the capabilities of the adapter do not change "iw 
list" and the complete "mid band" is missing

         Frequencies:
             * 5180 MHz [36] (20.0 dBm)
             * 5200 MHz [40] (20.0 dBm) (no IR)
             * 5220 MHz [44] (20.0 dBm)
             * 5240 MHz [48] (20.0 dBm)
             * 5260 MHz [52] (20.0 dBm) (no IR, radar detection)
             * 5280 MHz [56] (20.0 dBm) (no IR, radar detection)
             * 5300 MHz [60] (20.0 dBm) (no IR, radar detection)
             * 5320 MHz [64] (20.0 dBm) (no IR, radar detection)
             * 5500 MHz [100] (disabled)
             * 5520 MHz [104] (disabled)
             * 5540 MHz [108] (disabled)
             * 5560 MHz [112] (disabled)
             * 5580 MHz [116] (disabled)
             * 5600 MHz [120] (disabled)
             * 5620 MHz [124] (disabled)
             * 5640 MHz [128] (disabled)
             * 5660 MHz [132] (disabled)
             * 5680 MHz [136] (disabled)
             * 5700 MHz [140] (disabled)
             * 5720 MHz [144] (disabled)
             * 5745 MHz [149] (13.0 dBm) (no IR)
             * 5765 MHz [153] (13.0 dBm) (no IR)
             * 5785 MHz [157] (13.0 dBm) (no IR)
             * 5805 MHz [161] (13.0 dBm) (no IR)
             * 5825 MHz [165] (13.0 dBm) (no IR)
             * 5845 MHz [169] (13.0 dBm) (no IR)
             * 5865 MHz [173] (disabled)

so I patched ath a little bit


    if (reg->current_rd != COUNTRY_ERD_FLAG && reg->current_rd != 0)
    return;
    printk(KERN_DEBUG "ath: EEPROM regdomain sanitized\n");
    - reg->current_rd = 0x64;
    + reg->current_rd = 0x8114;

with the result that now the correct regdomain is set

[    6.852089] ath: EEPROM regdomain sanitized
[    6.852090] ath: EEPROM regdomain: 0x8114
[    6.852090] ath: EEPROM indicates we should expect a country code
[    6.852091] ath: doing EEPROM country->regdmn map search
[    6.852091] ath: country maps to regdmn code: 0x37
[    6.852092] ath: Country alpha2 being used: DE
[    6.852092] ath: Regpair used: 0x37

~$ iw reg get
global
country DE: DFS-ETSI
     (2400 - 2483 @ 40), (N/A, 20), (N/A)
     (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, 26), (0 ms), DFS
     (5725 - 5875 @ 80), (N/A, 13), (N/A)
     (57000 - 66000 @ 2160), (N/A, 40), (N/A)

phy#1
country DE: DFS-ETSI
     (2400 - 2483 @ 40), (N/A, 20), (N/A)
     (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, 26), (0 ms), DFS
     (5725 - 5875 @ 80), (N/A, 13), (N/A)
     (57000 - 66000 @ 2160), (N/A, 40), (N/A)

phy#0
country DE: DFS-ETSI
     (2400 - 2483 @ 40), (N/A, 20), (N/A)
     (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, 26), (0 ms), DFS
     (5725 - 5875 @ 80), (N/A, 13), (N/A)
     (57000 - 66000 @ 2160), (N/A, 40), (N/A)

phy#2 (self-managed)
country DE: DFS-UNSET
     (2402 - 2437 @ 40), (6, 22), (N/A), AUTO-BW, NO-HT40MINUS, 
NO-80MHZ, NO-160MHZ
     (2422 - 2462 @ 40), (6, 22), (N/A), AUTO-BW, NO-80MHZ, NO-160MHZ
     (2447 - 2482 @ 40), (6, 22), (N/A), AUTO-BW, NO-HT40PLUS, NO-80MHZ, 
NO-160MHZ
     (5170 - 5190 @ 80), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, 
IR-CONCURRENT, NO-HT40MINUS, NO-160MHZ, PASSIVE-SCAN
     (5190 - 5210 @ 80), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, 
IR-CONCURRENT, NO-HT40PLUS, NO-160MHZ, PASSIVE-SCAN
     (5210 - 5230 @ 80), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, 
IR-CONCURRENT, NO-HT40MINUS, NO-160MHZ, PASSIVE-SCAN
     (5230 - 5250 @ 80), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, 
IR-CONCURRENT, NO-HT40PLUS, NO-160MHZ, PASSIVE-SCAN
     (5250 - 5270 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, 
NO-160MHZ, PASSIVE-SCAN
     (5270 - 5290 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, 
NO-160MHZ, PASSIVE-SCAN
     (5290 - 5310 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, 
NO-160MHZ, PASSIVE-SCAN
     (5310 - 5330 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, 
NO-160MHZ, PASSIVE-SCAN
     (5490 - 5510 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, 
NO-160MHZ, PASSIVE-SCAN
     (5510 - 5530 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, 
NO-160MHZ, PASSIVE-SCAN
     (5530 - 5550 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, 
NO-160MHZ, PASSIVE-SCAN
     (5550 - 5570 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, 
NO-160MHZ, PASSIVE-SCAN
     (5570 - 5590 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, 
NO-160MHZ, PASSIVE-SCAN
     (5590 - 5610 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, 
NO-160MHZ, PASSIVE-SCAN
     (5610 - 5630 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, 
NO-160MHZ, PASSIVE-SCAN
     (5630 - 5650 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, 
NO-160MHZ, PASSIVE-SCAN
     (5650 - 5670 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, 
NO-160MHZ, PASSIVE-SCAN
     (5670 - 5690 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, 
NO-160MHZ, PASSIVE-SCAN
     (5690 - 5710 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, 
NO-160MHZ, PASSIVE-SCAN
     (5710 - 5730 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, 
NO-160MHZ, PASSIVE-SCAN
     (5735 - 5755 @ 80), (6, 22), (N/A), AUTO-BW, NO-HT40MINUS, NO-160MHZ
     (5755 - 5775 @ 80), (6, 22), (N/A), AUTO-BW, NO-HT40PLUS, NO-160MHZ
     (5775 - 5795 @ 80), (6, 22), (N/A), AUTO-BW, NO-HT40MINUS, NO-160MHZ
     (5795 - 5815 @ 80), (6, 22), (N/A), AUTO-BW, NO-HT40PLUS, NO-160MHZ
     (5815 - 5835 @ 20), (6, 22), (N/A), AUTO-BW, NO-HT40MINUS, 
NO-HT40PLUS, NO-80MHZ, NO-160MHZ

but the 5Ghz QCA9984 adapter hangs on default after a reboot and the mid 
band is missing again

Wiphy phy1

         Frequencies:
             * 2412 MHz [1] (20.0 dBm)
             * 2417 MHz [2] (20.0 dBm)
             * 2422 MHz [3] (20.0 dBm)
             * 2427 MHz [4] (20.0 dBm)
             * 2432 MHz [5] (20.0 dBm)
             * 2437 MHz [6] (20.0 dBm)
             * 2442 MHz [7] (20.0 dBm)
             * 2447 MHz [8] (20.0 dBm)
             * 2452 MHz [9] (20.0 dBm)
             * 2457 MHz [10] (20.0 dBm)
             * 2462 MHz [11] (20.0 dBm)
             * 2467 MHz [12] (20.0 dBm)
             * 2472 MHz [13] (20.0 dBm)
             * 2484 MHz [14] (disabled)

Wiphy phy0

         Frequencies:
             * 5180 MHz [36] (20.0 dBm)
             * 5200 MHz [40] (20.0 dBm) (no IR)
             * 5220 MHz [44] (20.0 dBm)
             * 5240 MHz [48] (20.0 dBm)
             * 5260 MHz [52] (20.0 dBm) (no IR, radar detection)
             * 5280 MHz [56] (20.0 dBm) (no IR, radar detection)
             * 5300 MHz [60] (20.0 dBm) (no IR, radar detection)
             * 5320 MHz [64] (20.0 dBm) (no IR, radar detection)
             * 5500 MHz [100] (disabled)
             * 5520 MHz [104] (disabled)
             * 5540 MHz [108] (disabled)
             * 5560 MHz [112] (disabled)
             * 5580 MHz [116] (disabled)
             * 5600 MHz [120] (disabled)
             * 5620 MHz [124] (disabled)
             * 5640 MHz [128] (disabled)
             * 5660 MHz [132] (disabled)
             * 5680 MHz [136] (disabled)
             * 5700 MHz [140] (disabled)
             * 5720 MHz [144] (disabled)
             * 5745 MHz [149] (13.0 dBm) (no IR)
             * 5765 MHz [153] (13.0 dBm) (no IR)
             * 5785 MHz [157] (13.0 dBm) (no IR)
             * 5805 MHz [161] (13.0 dBm) (no IR)
             * 5825 MHz [165] (13.0 dBm) (no IR)
             * 5845 MHz [169] (13.0 dBm) (no IR)
             * 5865 MHz [173] (disabled)

if I reload the module now then everything fits

~$ sudo modprobe -r ath10k_pci
~$ sudo modprobe ath10k_pci

Wiphy phy4

         Frequencies:
             * 2412 MHz [1] (20.0 dBm)
             * 2417 MHz [2] (20.0 dBm)
             * 2422 MHz [3] (20.0 dBm)
             * 2427 MHz [4] (20.0 dBm)
             * 2432 MHz [5] (20.0 dBm)
             * 2437 MHz [6] (20.0 dBm)
             * 2442 MHz [7] (20.0 dBm)
             * 2447 MHz [8] (20.0 dBm)
             * 2452 MHz [9] (20.0 dBm)
             * 2457 MHz [10] (20.0 dBm)
             * 2462 MHz [11] (20.0 dBm)
             * 2467 MHz [12] (20.0 dBm)
             * 2472 MHz [13] (20.0 dBm)
             * 2484 MHz [14] (disabled)

Wiphy phy3

         Frequencies:
             * 5180 MHz [36] (20.0 dBm)
             * 5200 MHz [40] (20.0 dBm)
             * 5220 MHz [44] (20.0 dBm)
             * 5240 MHz [48] (20.0 dBm)
             * 5260 MHz [52] (20.0 dBm) (no IR, radar detection)
             * 5280 MHz [56] (20.0 dBm) (no IR, radar detection)
             * 5300 MHz [60] (20.0 dBm) (no IR, radar detection)
             * 5320 MHz [64] (20.0 dBm) (no IR, radar detection)
             * 5500 MHz [100] (26.0 dBm) (no IR, radar detection)
             * 5520 MHz [104] (26.0 dBm) (no IR, radar detection)
             * 5540 MHz [108] (26.0 dBm) (no IR, radar detection)
             * 5560 MHz [112] (26.0 dBm) (no IR, radar detection)
             * 5580 MHz [116] (26.0 dBm) (no IR, radar detection)
             * 5600 MHz [120] (26.0 dBm) (no IR, radar detection)
             * 5620 MHz [124] (26.0 dBm) (no IR, radar detection)
             * 5640 MHz [128] (26.0 dBm) (no IR, radar detection)
             * 5660 MHz [132] (26.0 dBm) (no IR, radar detection)
             * 5680 MHz [136] (26.0 dBm) (no IR, radar detection)
             * 5700 MHz [140] (26.0 dBm) (no IR, radar detection)
             * 5720 MHz [144] (disabled)
             * 5745 MHz [149] (13.0 dBm)
             * 5765 MHz [153] (13.0 dBm)
             * 5785 MHz [157] (13.0 dBm)
             * 5805 MHz [161] (13.0 dBm)
             * 5825 MHz [165] (13.0 dBm)
             * 5845 MHz [169] (13.0 dBm)
             * 5865 MHz [173] (13.0 dBm)

that's not possible? there is something hanging and the regulatory 
domain and the frequencies and the flags are not updated on all adapters 
! !?

does anyone have a tip or an idea what this could be?

pretty annoying issue


best regards




More information about the ath10k mailing list