qcacmn: Fix multiple radar founds for a single burst

In dfs test mode, 18 pulses are injected in a single burst, the host
driver reports the radar found event two or three times to
upper layer. For a single burst of radar pulses, radar found event
should be reported only once.

Fix the multiple radar founds for a single burst by disabling radar
detection and flushing the existing radar pulses from all queues
while processing the current radar found indication event in dfs test
mode (usenol=0).

Change-Id: I70c7c15147a5cde038773fd97735c113ca385932
CRs-Fixed: 2981217
此提交包含在:
Huashan Qu
2021-08-05 19:40:26 +08:00
提交者 Madan Koyyalamudi
父節點 81de2fc14d
當前提交 83065ffe1e
共有 5 個檔案被更改,包括 36 行新增1 行删除

查看文件

@@ -968,4 +968,15 @@ QDF_STATUS dfs_init_chan_state_array(struct wlan_objmgr_pdev *pdev)
return QDF_STATUS_E_NOSUPPORT;
}
#endif /* WLAN_DISP_CHAN_INFO */
/**
* utils_dfs_radar_enable() - Enables the radar.
* @pdev: Pointer to DFS pdev object.
*
* This is called each time for eCSA occurs but don't change channel due
* to channel switch disabled in dfs test mode.
*
* Return: QDF_STATUS.
*/
QDF_STATUS utils_dfs_radar_enable(struct wlan_objmgr_pdev *pdev);
#endif /* _WLAN_DFS_UTILS_API_H_ */

查看文件

@@ -1583,3 +1583,8 @@ QDF_STATUS utils_dfs_update_chan_state_array(struct wlan_objmgr_pdev *pdev,
return utils_dfs_update_chan_state_array_element(dfs, freq, state);
}
#endif /* WLAN_DISP_CHAN_INFO */
QDF_STATUS utils_dfs_radar_enable(struct wlan_objmgr_pdev *pdev)
{
return tgt_dfs_radar_enable(pdev, 0, 0, true);
}