Skip to content

Commit 7f0343b

Browse files
Baochen Qiangkvalo
authored andcommitted
wifi: ath11k: restore country code during resume
We got report that regdomain is not correct after return from hibernation: Before hibernation: % iw reg get [...] phy#0 (self-managed) country CH: DFS-ETSI (2402 - 2482 @ 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, 30), (0 ms), DFS, AUTO-BW (5590 - 5650 @ 40), (N/A, 30), (600000 ms), DFS, AUTO-BW (5650 - 5730 @ 80), (N/A, 30), (0 ms), DFS, AUTO-BW (5735 - 5875 @ 80), (N/A, 14), (N/A), AUTO-BW After hibernation: % iw reg get [...] phy#0 (self-managed) country na: DFS-UNSET (2402 - 2472 @ 40), (N/A, 20), (N/A) (2457 - 2482 @ 20), (N/A, 20), (N/A), PASSIVE-SCAN (5170 - 5330 @ 160), (N/A, 20), (N/A), AUTO-BW, PASSIVE-SCAN (5490 - 5730 @ 160), (N/A, 20), (N/A), AUTO-BW, PASSIVE-SCAN (5735 - 5895 @ 160), (N/A, 20), (N/A), AUTO-BW, PASSIVE-SCAN (5945 - 7125 @ 160), (N/A, 30), (N/A), AUTO-BW, PASSIVE-SCAN The reason is, during resume, firmware is reinitialized but host does not send current country code to firmware. So default reg rules with country code set to 'na' is uploaded to host, as shown above. Fix it by restoring country code to firmware during resume. Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30 Fixes: 166a490 ("wifi: ath11k: support hibernation") Signed-off-by: Baochen Qiang <[email protected]> Signed-off-by: Kalle Valo <[email protected]> Link: https://msgid.link/[email protected]
1 parent b363614 commit 7f0343b

File tree

1 file changed

+10
-0
lines changed
  • drivers/net/wireless/ath/ath11k

1 file changed

+10
-0
lines changed

drivers/net/wireless/ath/ath11k/core.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1009,6 +1009,16 @@ int ath11k_core_resume(struct ath11k_base *ab)
10091009
return -ETIMEDOUT;
10101010
}
10111011

1012+
if (ab->hw_params.current_cc_support &&
1013+
ar->alpha2[0] != 0 && ar->alpha2[1] != 0) {
1014+
ret = ath11k_reg_set_cc(ar);
1015+
if (ret) {
1016+
ath11k_warn(ab, "failed to set country code during resume: %d\n",
1017+
ret);
1018+
return ret;
1019+
}
1020+
}
1021+
10121022
ret = ath11k_dp_rx_pktlog_start(ab);
10131023
if (ret)
10141024
ath11k_warn(ab, "failed to start rx pktlog during resume: %d\n",

0 commit comments

Comments
 (0)