Merge "wlan: Send ECSA action frame every beacon interval till switch count is 0" into wlan-driver.lnx.1.0-dev.1.0
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h
index d092a1d..06088d8 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg.h
@@ -3117,7 +3117,10 @@
 #define CFG_FORCE_SCC_WITH_ECSA_MAX        (1)
 #define CFG_FORCE_SCC_WITH_ECSA_DEFAULT    (0)
 
-
+#define CFG_STA_SAP_SCC_ON_DFS_CHAN             "sta_sap_scc_on_dfs_chan"
+#define CFG_STA_SAP_SCC_ON_DFS_CHAN_MIN         (0)
+#define CFG_STA_SAP_SCC_ON_DFS_CHAN_MAX         (1)
+#define CFG_STA_SAP_SCC_ON_DFS_CHAN_DEFAULT     (0)
 /*--------------------------------------------------------------------------- 
   Type declarations
   -------------------------------------------------------------------------*/ 
@@ -3721,6 +3724,7 @@
    uint32_t                    trigger_nullframe_before_hb;
    bool                        force_scc_with_ecsa;
    uint8_t                     enable_rtt_support;
+   uint32_t                    sta_sap_scc_on_dfs_chan;
 } hdd_config_t;
 
 /*--------------------------------------------------------------------------- 
diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c
index 465ba6a..bb039ae 100644
--- a/CORE/HDD/src/wlan_hdd_cfg.c
+++ b/CORE/HDD/src/wlan_hdd_cfg.c
@@ -3950,6 +3950,13 @@
                CFG_FORCE_SCC_WITH_ECSA_DEFAULT,
                CFG_FORCE_SCC_WITH_ECSA_MIN,
                CFG_FORCE_SCC_WITH_ECSA_MAX ),
+
+  REG_VARIABLE(CFG_STA_SAP_SCC_ON_DFS_CHAN, WLAN_PARAM_HexInteger,
+               hdd_config_t, sta_sap_scc_on_dfs_chan,
+               VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+               CFG_STA_SAP_SCC_ON_DFS_CHAN_DEFAULT,
+               CFG_STA_SAP_SCC_ON_DFS_CHAN_MIN,
+               CFG_STA_SAP_SCC_ON_DFS_CHAN_MAX),
 };
 
 /*
@@ -4605,6 +4612,11 @@
             "Name = [%s] Value = [%u] ",
             CFG_FORCE_SCC_WITH_ECSA_NAME,
             pHddCtx->cfg_ini->force_scc_with_ecsa);
+
+    VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH,
+            "Name = [%s] value = [%u]",
+            CFG_STA_SAP_SCC_ON_DFS_CHAN,
+            pHddCtx->cfg_ini->sta_sap_scc_on_dfs_chan);
 }
 
 
@@ -6618,6 +6630,10 @@
            pHddCtx->cfg_ini->sendMgmtPktViaWQ5);
 
    vos_set_multicast_logging(pHddCtx->cfg_ini->multicast_host_msgs);
+
+   smeConfig->csrConfig.sta_sap_scc_on_dfs_chan =
+           pHddCtx->cfg_ini->sta_sap_scc_on_dfs_chan;
+
    halStatus = sme_UpdateConfig( pHddCtx->hHal, smeConfig);
    if ( !HAL_STATUS_SUCCESS( halStatus ) )
    {
diff --git a/CORE/MAC/inc/aniGlobal.h b/CORE/MAC/inc/aniGlobal.h
index 2768d24..edeb41f 100644
--- a/CORE/MAC/inc/aniGlobal.h
+++ b/CORE/MAC/inc/aniGlobal.h
@@ -1100,6 +1100,7 @@
 #endif /* SAP_AUTH_OFFLOAD */
    bool max_power_cmd_pending;
    uint32_t sta_auth_retries_for_code17;
+   uint32_t sta_sap_scc_on_dfs_chan;
 } tAniSirGlobal;
 
 #ifdef FEATURE_WLAN_TDLS
diff --git a/CORE/SME/inc/csrApi.h b/CORE/SME/inc/csrApi.h
index a0a6b5c..3007365 100644
--- a/CORE/SME/inc/csrApi.h
+++ b/CORE/SME/inc/csrApi.h
@@ -1247,6 +1247,7 @@
     uint32_t edca_be_aifs;
     tANI_BOOLEAN disable_scan_during_sco;
     uint32_t sta_auth_retries_for_code17;
+    uint32_t sta_sap_scc_on_dfs_chan;
 }tCsrConfigParam;
 
 //Tush
diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c
index 31e038e..a61953e 100644
--- a/CORE/SME/src/csr/csrApiRoam.c
+++ b/CORE/SME/src/csr/csrApiRoam.c
@@ -2081,6 +2081,7 @@
         pMac->roam.configParam.edca_vi_aifs = pParam->edca_vi_aifs;
         pMac->roam.configParam.edca_bk_aifs = pParam->edca_bk_aifs;
         pMac->roam.configParam.edca_be_aifs = pParam->edca_be_aifs;
+        pMac->sta_sap_scc_on_dfs_chan = pParam->sta_sap_scc_on_dfs_chan;
     }
     
     return status;
@@ -2279,7 +2280,7 @@
         pParam->edca_vi_aifs = pMac->roam.configParam.edca_vi_aifs;
         pParam->edca_bk_aifs = pMac->roam.configParam.edca_bk_aifs;
         pParam->edca_be_aifs = pMac->roam.configParam.edca_be_aifs;
-
+        pParam->sta_sap_scc_on_dfs_chan = pMac->sta_sap_scc_on_dfs_chan;
         status = eHAL_STATUS_SUCCESS;
     }
     return (status);