wifi problem with regulatory domain settings
10
votes
1
answer
468
views
Issue Summary:
Multiple worldwide ThinkPad models with WCN6855 hw2.1 fail to properly handle regulatory domain settings, defaulting to incorrect country codes and causing regulatory compliance issues in EU.
Affected Hardware:
- Primary: Lenovo ThinkPad P16s Gen 2, QCNFA765 (WCN6855 hw2.1)
- Secondary: Lenovo ThinkPad T14s Gen 4, same WCN6855 hw2.1 chip
- Location: Czech Republic (EU)
- Common pattern: Both models have worldwide country codes (00/WW suffix)
Firmware versions tested:
- Custom kernel: WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.41 (2024-04-17)
- Debian Live: WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.9 (2022-04-18)
Problem Description:
Despite kernel regulatory domain settings, both laptops fail to apply correct regulatory rules:
1. Boot errors (consistent across all systems):
ath11k_pci 0000:02:00.0: Failed to set the requested Country regulatory setting
ath11k_pci 0000:02:00.0: Failed to set the requested Country regulatory setting
2. Incorrect regulatory domains applied:
- P16s defaults to Brazil (BR) despite CZ kernel parameter
- T14s defaults to United States (US)
- Both ignore proper EU regulatory requirements
3. Regulatory compliance issues in EU:
- All 5GHz channels marked "No IR" (No Initiate Radiation)
- 6GHz power levels incorrect (30dBm instead of EU limit 23dBm)
- Wrong DFS requirements (DFS-UNSET/DFS-FCC instead of DFS-ETSI)
Test Results:
ThinkPad P16s (21K9S0DC00) with kernel parameter cfg80211.ieee80211_regdom=CZ:
global: country CZ: DFS-ETSI [correct]
phy#0 (self-managed): country BR: DFS-UNSET [incorrect]
ThinkPad T14s (21F8CT01WW) - stock configuration:
global: country 00: DFS-UNSET
phy#0 (self-managed): country US: DFS-FCC [incorrect for EU]
Debian Live CD test (P16s) - proves cross-distribution issue:
global: country 00: DFS-UNSET
phy#0 (self-managed): country 00: DFS-UNSET
6GHz: 20dBm with "no IR" on ALL channels [overly restrictive]
What I tried:
1. Kernel parameter cfg80211.ieee80211_regdom=CZ - Sets global domain but chip remains on wrong country
2. Kernel source modification - Changed default regulatory domain in net/wireless/reg.c:
-static char *ieee80211_regdom = "00";
+static char *ieee80211_regdom = "CZ";
2. Result: Global domain correctly set to CZ, but phy#0 still remains BR - firmware ignores kernel setting
3. Runtime iw reg set CZ - No effect on self-managed phy#0
4. Different distributions - Debian Live CD shows identical boot errors
5. Multiple hardware - Issue affects different worldwide ThinkPad models consistently
Analysis:
- Both laptops have worldwide country codes in model numbers (00/WW suffix)
- SMBIOS likely contains "00" (worldwide) which firmware doesn't handle properly
- Firmware falls back to hardcoded regional defaults instead of respecting kernel settings
- Issue appears related to SMBIOS country code handling patch for WCN6855 (commit referencing reading country code from SMBIOS)
- Problem affects multiple Linux distributions and kernel versions
- Kernel-level regulatory changes are completely ignored by self-managed firmware
Next Plan:
Patching /usr/lib/firmware/ath11k/WCN6855/hw2.1/regdb.bin to replace incorrect regulatory data resolves the issue, but this shouldn't be necessary.
Expected behavior:
at the very least, it should be possible to change regulatory domain configuration via standard Linux methods
Impact:
This affects regulatory compliance for EU users with worldwide ThinkPad models, potentially causing interference and legal issues due to incorrect power levels and frequency usage.
Asked by Martin Vegter
(586 rep)
Jul 27, 2025, 08:26 AM
Last activity: Jul 31, 2025, 10:40 AM
Last activity: Jul 31, 2025, 10:40 AM