From 10b1959cc84cd4a8a2a478f4ea6ec99bd22ae671 Mon Sep 17 00:00:00 2001 From: Deeksha Gupta Date: Thu, 11 Mar 2021 16:22:42 +0530 Subject: [PATCH] qcacld-3.0: Remove radar event if dfs_channel_switch is disable Currently, DUT is able to detect the radar event causing channel switch even if disable dfs channel switch ini is set. Due to this, there is a chance of unwanted CSA. Adding check for disable dfs channel switch ini before detecting the radar. If gDisableDFSChSwitch = 0 then detect the radar event else ignore the radar event. Change-Id: I977d93e47ee35026662d55a8e292c8790ddc7d31 CRs-Fixed: 2905871 --- core/sap/src/sap_api_link_cntl.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/core/sap/src/sap_api_link_cntl.c b/core/sap/src/sap_api_link_cntl.c index 8bf3e659ad17..4c968562159e 100644 --- a/core/sap/src/sap_api_link_cntl.c +++ b/core/sap/src/sap_api_link_cntl.c @@ -51,6 +51,7 @@ #include "wlan_reg_services_api.h" #include #include +#include /*---------------------------------------------------------------------------- * Preprocessor Definitions and Constants @@ -844,6 +845,7 @@ QDF_STATUS wlansap_roam_callback(void *ctx, mac_handle_t mac_handle; struct mac_context *mac_ctx; uint8_t intf; + bool dfs_disable_channel_switch = false; if (QDF_IS_STATUS_ERROR(wlansap_context_get(sap_ctx))) return QDF_STATUS_E_FAILURE; @@ -961,6 +963,12 @@ QDF_STATUS wlansap_roam_callback(void *ctx, sap_debug("sapdfs: Indicate eSAP_DFS_RADAR_DETECT to HDD"); sap_signal_hdd_event(sap_ctx, NULL, eSAP_DFS_RADAR_DETECT, (void *) eSAP_STATUS_SUCCESS); + + ucfg_mlme_get_dfs_disable_channel_switch(mac_ctx->psoc, + &dfs_disable_channel_switch); + if (dfs_disable_channel_switch) + goto EXIT; + mac_ctx->sap.SapDfsInfo.target_chan_freq = sap_indicate_radar(sap_ctx); @@ -1172,8 +1180,11 @@ QDF_STATUS wlansap_roam_callback(void *ctx, break; case eCSR_ROAM_RESULT_DFS_RADAR_FOUND_IND: + ucfg_mlme_get_dfs_disable_channel_switch(mac_ctx->psoc, + &dfs_disable_channel_switch); if (!policy_mgr_get_dfs_master_dynamic_enabled( - mac_ctx->psoc, sap_ctx->sessionId)) + mac_ctx->psoc, sap_ctx->sessionId) || + dfs_disable_channel_switch) break; wlansap_roam_process_dfs_radar_found(mac_ctx, sap_ctx, &qdf_ret_status);