• Wen Gong's avatar
    ath11k: reset 11d state in process of recovery · 9497b788
    Wen Gong authored
    When doing simulate_fw_crash operation periodically with a short interval
    time such as 10 seconds, it is easy happened WMI command timed out for
    WMI_SCAN_CHAN_LIST_CMDID in ath11k_reg_update_chan_list().
    
    log:
    [42287.610053] ath11k_pci 0000:01:00.0: wmi command 12291 timeout
    [42287.610064] ath11k_pci 0000:01:00.0: failed to send WMI_SCAN_CHAN_LIST cmd
    [42287.610073] ath11k_pci 0000:01:00.0: failed to perform regd update : -11
    
    Note that this issue does not occur with a longer interval such as 20 seconds.
    
    The reason the issue occurs with a shorter interval is the following steps:
    1) Upon initial boot, or after device recovery, the initial hw scan plus
    the 11d scan will run, and when 6 GHz support is present, these scans
    can take up to 12 seconds to complete, so ath11k_reg_update_chan_list()
    is still waiting the completion of ar->completed_11d_scan.
    2) If a simulate_fw_crash operation is received during this time, those
    scans do not complete, and ath11k_core_pre_reconfigure_recovery()
    complete the ar->completed_11d_scan, then ath11k_reg_update_chan_list()
    wakeup and start to send WMI_SCAN_CHAN_LIST_CMDID, but firmware is crashed
    at this moment, so wmi timed out occur.
    
    To address this issue, reset the 11d state during device recovery so that
    WMI_SCAN_CHAN_LIST_CMDID does not timed out for short interval time such
    as 10 seconds.
    
    Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3
    
    Fixes: 1f682dc9 ("ath11k: reduce the wait time of 11d scan and hw scan while add interface")
    Signed-off-by: default avatarWen Gong <quic_wgong@quicinc.com>
    Signed-off-by: default avatarKalle Valo <quic_kvalo@quicinc.com>
    Link: https://lore.kernel.org/r/20220505034636.29582-1-quic_wgong@quicinc.com
    9497b788
mac.c 238 KB