diff options
| -rw-r--r-- | CORE/SAP/src/sapFsm.c | 29 | ||||
| -rw-r--r-- | CORE/SME/src/csr/csrUtil.c | 30 |
2 files changed, 47 insertions, 12 deletions
diff --git a/CORE/SAP/src/sapFsm.c b/CORE/SAP/src/sapFsm.c index 71071669f69d..9f96a06763f8 100644 --- a/CORE/SAP/src/sapFsm.c +++ b/CORE/SAP/src/sapFsm.c @@ -2700,9 +2700,7 @@ sapGotoChannelSel #endif } - if (vos_get_concurrency_mode() == VOS_STA_SAP || - (sapContext->ap_p2pclient_concur_enable && - vos_get_concurrency_mode() == (VOS_SAP|VOS_P2P_CLIENT))) + if (vos_get_concurrency_mode() == VOS_STA_SAP) { #ifdef FEATURE_WLAN_STA_AP_MODE_DFS_DISABLE if (sapContext->channel == AUTO_CHANNEL_SELECT) @@ -2742,6 +2740,31 @@ sapGotoChannelSel } #endif } +#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH + else if (sapContext->ap_p2pclient_concur_enable && + vos_get_concurrency_mode() == (VOS_SAP|VOS_P2P_CLIENT)) { +#ifdef FEATURE_WLAN_STA_AP_MODE_DFS_DISABLE + if (sapContext->channel == AUTO_CHANNEL_SELECT) + sapContext->dfs_ch_disable = VOS_TRUE; + else if (VOS_IS_DFS_CH(sapContext->channel)) { + VOS_TRACE( VOS_MODULE_ID_SAP, VOS_TRACE_LEVEL_WARN, + "In %s, DFS not supported in STA_AP Mode, chan=%d", + __func__, sapContext->channel); + return VOS_STATUS_E_ABORTED; + } +#endif + vosStatus = sap_concurrency_chan_override( + sapContext, + sapContext->cc_switch_mode, + &con_ch); + if (vosStatus != VOS_STATUS_SUCCESS) { + VOS_TRACE( VOS_MODULE_ID_SAP, VOS_TRACE_LEVEL_ERROR, + "%s: invalid SAP channel(%d) configuration", + __func__,sapContext->channel); + return VOS_STATUS_E_ABORTED; + } + } +#endif if (sapContext->channel == AUTO_CHANNEL_SELECT) { diff --git a/CORE/SME/src/csr/csrUtil.c b/CORE/SME/src/csr/csrUtil.c index 6eb44d0784fc..b29c3671b0c8 100644 --- a/CORE/SME/src/csr/csrUtil.c +++ b/CORE/SME/src/csr/csrUtil.c @@ -2396,8 +2396,10 @@ csrIsconcurrentsessionValid(tpAniSirGlobal pMac,tANI_U32 cursessionId, tANI_U8 automotive_support_enable = (pMac->roam.configParam.conc_custom_rule1 | pMac->roam.configParam.conc_custom_rule2); +#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH bool ap_p2pgo_concurrency_enable = - pMac->roam.configParam.ap_p2pgo_concurrency_enable; + pMac->roam.configParam.ap_p2pgo_concurrency_enable; +#endif tVOS_CON_MODE bss_persona; eCsrConnectState connect_state; @@ -2419,6 +2421,7 @@ csrIsconcurrentsessionValid(tpAniSirGlobal pMac,tANI_U32 cursessionId, return eHAL_STATUS_SUCCESS; case VOS_STA_SAP_MODE: +#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH if ((VOS_MCC_TO_SCC_SWITCH_FORCE == pMac->roam.configParam.cc_switch_mode) && (ap_p2pgo_concurrency_enable) && @@ -2428,7 +2431,9 @@ csrIsconcurrentsessionValid(tpAniSirGlobal pMac,tANI_U32 cursessionId, VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_INFO, FL("Start AP session concurrency with P2P-GO")); return eHAL_STATUS_SUCCESS; - } else if (((bss_persona == VOS_P2P_GO_MODE) && + } else +#endif + if (((bss_persona == VOS_P2P_GO_MODE) && (0 == automotive_support_enable) && (connect_state != eCSR_ASSOC_STATE_TYPE_NOT_CONNECTED)) || @@ -2447,16 +2452,20 @@ csrIsconcurrentsessionValid(tpAniSirGlobal pMac,tANI_U32 cursessionId, VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR, FL(" ****P2P GO mode already exists ****")); return eHAL_STATUS_FAILURE; - } else if ((VOS_MCC_TO_SCC_SWITCH_FORCE == - pMac->roam.configParam.cc_switch_mode) && - (ap_p2pgo_concurrency_enable) && - (bss_persona == VOS_STA_SAP_MODE) && - (connect_state != + } +#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH + else if ((VOS_MCC_TO_SCC_SWITCH_FORCE == + pMac->roam.configParam.cc_switch_mode) && + (ap_p2pgo_concurrency_enable) && + (bss_persona == VOS_STA_SAP_MODE) && + (connect_state != eCSR_ASSOC_STATE_TYPE_NOT_CONNECTED)) { VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_INFO, FL("Start P2P-GO session concurrency with AP")); return eHAL_STATUS_SUCCESS; - } else if (((bss_persona == VOS_STA_SAP_MODE) && + } +#endif + else if (((bss_persona == VOS_STA_SAP_MODE) && (connect_state != eCSR_ASSOC_STATE_TYPE_NOT_CONNECTED) && (0 == automotive_support_enable)) || @@ -2718,13 +2727,16 @@ eHalStatus csrValidateMCCBeaconInterval(tpAniSirGlobal pMac, tANI_U8 channelId, if (pMac->roam.roamSession[sessionId].bssParams.operationChn != channelId ) { +#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH if (VOS_MCC_TO_SCC_SWITCH_FORCE == pMac->roam.configParam.cc_switch_mode && pMac->roam.configParam.ap_p2pclient_concur_enable) { smsLog(pMac, LOG1, FL("SAP + CLIENT for MCC to SCC")); return eHAL_STATUS_SUCCESS; - } else { + } else +#endif + { smsLog(pMac, LOGE, FL("***MCC is not enabled for SAP + CLIENT****")); return eHAL_STATUS_FAILURE; |
