From a1860003dda9daa6b4c7b6cfa7e72eceab5c57d6 Mon Sep 17 00:00:00 2001 From: Vignesh U Date: Tue, 11 Sep 2018 19:56:29 +0530 Subject: [PATCH] qcacmn: Add usenol support to Host DFS Test When user sets the usenol to 0 and inject the radar, host sends RADAR found WMI command to firmware. Firmware sends status code as 2 and starts a 2 minutes timer to receive channel change request from host. Since usenol was set to 0, host does not change the channel. This leads to firmware timer expiry and sends status code 1 to block all the DFS channels. This is not desired. Do not send the RADAR found WMI command to firmware when usenol is 0. Change-Id: I5884eb343cc419d4c9f5bda3e6eaa7c95c4d4af5 CRs-Fixed: 2276722 --- umac/dfs/core/src/dfs.h | 4 ++-- umac/dfs/core/src/filtering/dfs_process_radarevent.c | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/umac/dfs/core/src/dfs.h b/umac/dfs/core/src/dfs.h index 7d34b93b53..45e66b4f58 100644 --- a/umac/dfs/core/src/dfs.h +++ b/umac/dfs/core/src/dfs.h @@ -1087,6 +1087,7 @@ struct wlan_dfs { qdf_spinlock_t dfs_nol_lock; uint16_t tx_leakage_threshold; bool dfs_use_nol_subchannel_marking; + uint8_t dfs_spoof_test_done:1; #if defined(WLAN_DFS_PARTIAL_OFFLOAD) && defined(HOST_DFS_SPOOF_TEST) os_timer_t dfs_host_wait_timer; uint32_t dfs_average_pri; @@ -1095,8 +1096,7 @@ struct wlan_dfs { uint8_t dfs_is_host_wait_running:1, dfs_average_params_sent:1, dfs_no_res_from_fw:1, - dfs_spoof_check_failed:1, - dfs_spoof_test_done:1; + dfs_spoof_check_failed:1; struct dfs_channel dfs_radar_found_chan; int dfs_status_timeout_override; #endif diff --git a/umac/dfs/core/src/filtering/dfs_process_radarevent.c b/umac/dfs/core/src/filtering/dfs_process_radarevent.c index 938b004862..1eb87b4c2f 100644 --- a/umac/dfs/core/src/filtering/dfs_process_radarevent.c +++ b/umac/dfs/core/src/filtering/dfs_process_radarevent.c @@ -1310,8 +1310,9 @@ void dfs_radar_found_action(struct wlan_dfs *dfs, * wait timer. */ if (!bangradar && - (utils_get_dfsdomain(dfs->dfs_pdev_obj) == DFS_FCC_DOMAIN) && - lmac_is_host_dfs_check_support_enabled(dfs->dfs_pdev_obj)) { + (utils_get_dfsdomain(dfs->dfs_pdev_obj) == DFS_FCC_DOMAIN) && + lmac_is_host_dfs_check_support_enabled(dfs->dfs_pdev_obj) && + (dfs->dfs_spoof_test_done ? dfs->dfs_use_nol : 1)) { dfs_radarfound_action_fcc(dfs, seg_id); } else { dfs_radarfound_action_generic(dfs, seg_id);