• Baochen Qiang's avatar
    wifi: ath11k: restore country code during resume · 7f0343b7
    Baochen Qiang authored
    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: 166a490f ("wifi: ath11k: support hibernation")
    Signed-off-by: default avatarBaochen Qiang <quic_bqiang@quicinc.com>
    Signed-off-by: default avatarKalle Valo <quic_kvalo@quicinc.com>
    Link: https://msgid.link/20240520024148.5472-3-quic_bqiang@quicinc.com
    7f0343b7
core.c 57.8 KB