diff --git a/core/hdd/inc/wlan_hdd_cfg.h b/core/hdd/inc/wlan_hdd_cfg.h index 1f669b9fb6a2..70797c3442fc 100644 --- a/core/hdd/inc/wlan_hdd_cfg.h +++ b/core/hdd/inc/wlan_hdd_cfg.h @@ -3082,6 +3082,8 @@ enum hdd_dot11_mode { * fav channel(s)without SAP restart. * If gWlainMccToSccSwitchMode = 5: Force switch without SAP restart.MCC allowed * in exceptional cases. + * If gWlainMccToSccSwitchMode = 6: Force Switch without SAP restart only in + user preffered band. * Related: None. * * Supported Feature: Concurrency @@ -3093,7 +3095,7 @@ enum hdd_dot11_mode { #define CFG_WLAN_MCC_TO_SCC_SWITCH_MODE "gWlanMccToSccSwitchMode" #define CFG_WLAN_MCC_TO_SCC_SWITCH_MODE_MIN (QDF_MCC_TO_SCC_SWITCH_DISABLE) #define CFG_WLAN_MCC_TO_SCC_SWITCH_MODE_MAX \ - (QDF_MCC_TO_SCC_SWITCH_FORCE_PREFERRED_WITHOUT_DISCONNECTION) + (QDF_MCC_TO_SCC_SWITCH_MAX - 1) #define CFG_WLAN_MCC_TO_SCC_SWITCH_MODE_DEFAULT (QDF_MCC_TO_SCC_SWITCH_DISABLE) #endif diff --git a/core/sme/src/csr/csr_util.c b/core/sme/src/csr/csr_util.c index 292abeb63ded..299038d43154 100644 --- a/core/sme/src/csr/csr_util.c +++ b/core/sme/src/csr/csr_util.c @@ -1103,13 +1103,7 @@ uint16_t csr_check_concurrent_channel_overlap(tpAniSirGlobal mac_ctx, policy_mgr_is_dbs_enable(mac_ctx->psoc)); if (intf_ch && sap_ch != intf_ch && - cc_switch_mode != QDF_MCC_TO_SCC_SWITCH_FORCE && - cc_switch_mode != - QDF_MCC_TO_SCC_SWITCH_FORCE_WITHOUT_DISCONNECTION && - cc_switch_mode != - QDF_MCC_TO_SCC_SWITCH_WITH_FAVORITE_CHANNEL && - cc_switch_mode != - QDF_MCC_TO_SCC_SWITCH_FORCE_PREFERRED_WITHOUT_DISCONNECTION) { + !policy_mgr_is_force_scc(mac_ctx->psoc)) { sap_lfreq = sap_cfreq - sap_hbw; sap_hfreq = sap_cfreq + sap_hbw; intf_lfreq = intf_cfreq - intf_hbw; @@ -1129,15 +1123,12 @@ uint16_t csr_check_concurrent_channel_overlap(tpAniSirGlobal mac_ctx, intf_ch = 0; } else if (intf_ch && sap_ch != intf_ch && ((cc_switch_mode == QDF_MCC_TO_SCC_SWITCH_FORCE) || - (cc_switch_mode == - QDF_MCC_TO_SCC_SWITCH_FORCE_WITHOUT_DISCONNECTION) || - (cc_switch_mode == - QDF_MCC_TO_SCC_SWITCH_WITH_FAVORITE_CHANNEL) || - (cc_switch_mode == - QDF_MCC_TO_SCC_SWITCH_FORCE_PREFERRED_WITHOUT_DISCONNECTION))) { + policy_mgr_is_force_scc(mac_ctx->psoc))) { if (!((intf_ch <= 14 && sap_ch <= 14) || (intf_ch > 14 && sap_ch > 14))) { - if (policy_mgr_is_dbs_enable(mac_ctx->psoc)) + if (policy_mgr_is_dbs_enable(mac_ctx->psoc) || + cc_switch_mode == + QDF_MCC_TO_SCC_WITH_PREFERRED_BAND) intf_ch = 0; } else if (cc_switch_mode == QDF_MCC_TO_SCC_SWITCH_WITH_FAVORITE_CHANNEL) {