diff --git a/core/hdd/src/wlan_hdd_hostapd.c b/core/hdd/src/wlan_hdd_hostapd.c index 7d67fde37d91..027cf8ee3bc3 100644 --- a/core/hdd/src/wlan_hdd_hostapd.c +++ b/core/hdd/src/wlan_hdd_hostapd.c @@ -2794,14 +2794,18 @@ QDF_STATUS wlan_hdd_get_channel_for_sap_restart( */ intf_ch = wlansap_check_cc_intf(hdd_ap_ctx->sapContext); hdd_info("intf_ch: %d", intf_ch); - if (QDF_IS_STATUS_ERROR( - policy_mgr_valid_sap_conc_channel_check(hdd_ctx->hdd_psoc, - &intf_ch, - policy_mgr_mode_specific_get_channel( - hdd_ctx->hdd_psoc, PM_SAP_MODE)))) { - hdd_debug("can't move sap to %d", - hdd_sta_ctx->conn_info.operationChannel); - return QDF_STATUS_E_FAILURE; + if (QDF_MCC_TO_SCC_SWITCH_FORCE_PREFERRED_WITHOUT_DISCONNECTION != + hdd_ctx->config->WlanMccToSccSwitchMode) { + if (QDF_IS_STATUS_ERROR( + policy_mgr_valid_sap_conc_channel_check( + hdd_ctx->hdd_psoc, + &intf_ch, + policy_mgr_mode_specific_get_channel( + hdd_ctx->hdd_psoc, PM_SAP_MODE)))) { + hdd_debug("can't move sap to %d", + hdd_sta_ctx->conn_info.operationChannel); + return QDF_STATUS_E_FAILURE; + } } if (intf_ch == 0) { diff --git a/core/sap/src/sap_fsm.c b/core/sap/src/sap_fsm.c index 54c9baa5d264..188ac7fae091 100644 --- a/core/sap/src/sap_fsm.c +++ b/core/sap/src/sap_fsm.c @@ -1764,14 +1764,17 @@ QDF_STATUS sap_goto_channel_sel(struct sap_context *sap_context, sap_context->channel, sap_context->csr_roamProfile.phyMode, sap_context->cc_switch_mode); - if (QDF_IS_STATUS_ERROR( - policy_mgr_valid_sap_conc_channel_check( - mac_ctx->psoc, &con_ch, - sap_context->channel))) { - QDF_TRACE(QDF_MODULE_ID_SAP, - QDF_TRACE_LEVEL_WARN, - FL("SAP can't start (no MCC)")); - return QDF_STATUS_E_ABORTED; + if (sap_context->cc_switch_mode != + QDF_MCC_TO_SCC_SWITCH_FORCE_PREFERRED_WITHOUT_DISCONNECTION) { + if (QDF_IS_STATUS_ERROR( + policy_mgr_valid_sap_conc_channel_check( + mac_ctx->psoc, &con_ch, + sap_context->channel))) { + QDF_TRACE(QDF_MODULE_ID_SAP, + QDF_TRACE_LEVEL_WARN, + FL("SAP can't start (no MCC)")); + return QDF_STATUS_E_ABORTED; + } } if (con_ch && !wlan_reg_is_dfs_ch(mac_ctx->pdev, con_ch)) {