diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c index cc2bdd2da53a..0e2f68e7707d 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.c +++ b/core/hdd/src/wlan_hdd_cfg80211.c @@ -2020,7 +2020,9 @@ int wlan_hdd_cfg80211_start_acs(struct hdd_adapter *adapter) if (QDF_MCC_TO_SCC_SWITCH_FORCE_PREFERRED_WITHOUT_DISCONNECTION != mcc_to_scc_switch && !(policy_mgr_is_hw_dbs_capable(hdd_ctx->psoc) && - WLAN_REG_IS_24GHZ_CH_FREQ(sap_config->acs_cfg.end_ch_freq))) { + WLAN_REG_IS_24GHZ_CH_FREQ(sap_config->acs_cfg.end_ch_freq)) && + !wlansap_dcs_is_wlan_interference_mitigation_enabled( + WLAN_HDD_GET_SAP_CTX_PTR(adapter))) { status = wlan_hdd_sap_cfg_dfs_override(adapter); if (status < 0) return status; diff --git a/core/sap/src/sap_api_link_cntl.c b/core/sap/src/sap_api_link_cntl.c index f04a09759fe3..fbec547fabc2 100644 --- a/core/sap/src/sap_api_link_cntl.c +++ b/core/sap/src/sap_api_link_cntl.c @@ -575,10 +575,13 @@ wlansap_roam_process_dfs_chansw_update(mac_handle_t mac_handle, * second SAP's channel change due to some previous platform's single * radio limitation. * + * For DCS case, SAP will do channel switch one by one. + * */ sap_scc_dfs = sap_is_conc_sap_doing_scc_dfs(mac_handle, sap_ctx); if (sap_get_total_number_sap_intf(mac_handle) <= 1 || policy_mgr_is_current_hwmode_dbs(mac_ctx->psoc) || + sap_ctx->csa_reason == CSA_REASON_DCS || !sap_scc_dfs) { sap_get_cac_dur_dfs_region(sap_ctx, &sap_ctx->csr_roamProfile.cac_duration_ms, diff --git a/core/sap/src/sap_fsm.c b/core/sap/src/sap_fsm.c index 4fe665b036c2..471de1469315 100644 --- a/core/sap/src/sap_fsm.c +++ b/core/sap/src/sap_fsm.c @@ -3387,12 +3387,19 @@ static QDF_STATUS sap_get_freq_list(struct sap_context *sap_ctx, * resulting MCC on DFS channel */ if (wlan_reg_is_dfs_for_freq( - mac_ctx->pdev, - WLAN_REG_CH_TO_FREQ(loop_count)) && - (policy_mgr_disallow_mcc(mac_ctx->psoc, - WLAN_REG_CH_TO_FREQ(loop_count)) || - !dfs_master_enable)) - continue; + mac_ctx->pdev, + WLAN_REG_CH_TO_FREQ(loop_count))) { + if (!dfs_master_enable) + continue; + if (wlansap_dcs_is_wlan_interference_mitigation_enabled( + sap_ctx)) + sap_debug("dfs chan_freq %d added when dcs enabled", + WLAN_REG_CH_TO_FREQ(loop_count)); + else if (policy_mgr_disallow_mcc( + mac_ctx->psoc, + WLAN_REG_CH_TO_FREQ(loop_count))) + continue; + } /* Dont scan ETSI13 SRD channels if the ETSI13 SRD channels * are not enabled in master mode diff --git a/core/sap/src/sap_module.c b/core/sap/src/sap_module.c index 1f8a144aec8a..a1aa3bfeba2e 100644 --- a/core/sap/src/sap_module.c +++ b/core/sap/src/sap_module.c @@ -1374,7 +1374,8 @@ QDF_STATUS wlansap_set_channel_change_with_csa(struct sap_context *sap_ctx, (!policy_mgr_is_any_mode_active_on_band_along_with_session( mac->psoc, sap_ctx->sessionId, POLICY_MGR_BAND_5) || - sta_sap_scc_on_dfs_chan)))) { + sta_sap_scc_on_dfs_chan || + sap_ctx->csa_reason == CSA_REASON_DCS)))) { /* * validate target channel switch w.r.t various concurrency * rules set.