qcacld-3.0: Remove deprecated API csr_isconcurrentsession_valid

In current driver, there is already an API called cds_allow_concurrency
which is functionally similar to csr_isconcurrentsession_valid. Remove old
API csr_isconcurrentsession_valid to have single API.

Change-Id: If81900af5cb7291917fe915b44af5cf763f16d46
CRs-Fixed: 1047054
This commit is contained in:
Krunal Soni 2016-07-14 19:39:02 -07:00 • committed by Vishwajith Upendra
commit cbda8555e6
4 changed files with 31 additions and 149 deletions

View file

@ -5323,10 +5323,13 @@ bool cds_allow_concurrency(enum cds_con_mode mode,
}
}
/* don't allow IBSS + STA MCC */
/* don't allow IBSS + STA SCC if IBSS is on DFS channel */
count = cds_mode_specific_connection_count(
CDS_STA_MODE, list);
/*
* Check all IBSS+STA concurrencies
*
* don't allow IBSS + STA MCC
* don't allow IBSS + STA SCC if IBSS is on DFS channel
*/
count = cds_mode_specific_connection_count(CDS_STA_MODE, list);
if ((CDS_IBSS_MODE == mode) &&
(cds_mode_specific_connection_count(
CDS_IBSS_MODE, list)) && count) {
@ -5365,7 +5368,7 @@ bool cds_allow_concurrency(enum cds_con_mode mode,
goto done;
}
}
count = cds_mode_specific_connection_count(CDS_STA_MODE, list);
if ((CDS_STA_MODE == mode) &&
(cds_mode_specific_connection_count(
CDS_IBSS_MODE, list)) && count) {
@ -5403,18 +5406,6 @@ bool cds_allow_concurrency(enum cds_con_mode mode,
}
}
/* don't allow concurrency on vht160 or vht 80+80 */
if (num_connections &&
((bw == HW_MODE_80_PLUS_80_MHZ) || (bw == HW_MODE_160_MHZ))) {
cds_err("No VHT160, we have one connection already");
goto done;
}
if (cds_vht160_conn_exist()) {
cds_err("VHT160/80+80 connection exists, no concurrency");
goto done;
}
/* don't allow two P2P GO on same band */
if (channel && (mode == CDS_P2P_GO_MODE) && num_connections) {
index = 0;
@ -5430,6 +5421,20 @@ bool cds_allow_concurrency(enum cds_con_mode mode,
}
}
/* don't allow concurrency on vht160 or vht 80+80 */
if (num_connections &&
((bw == HW_MODE_80_PLUS_80_MHZ) ||
(bw == HW_MODE_160_MHZ))) {
cds_err("No VHT160, we have one connection already");
goto done;
}
if (cds_vht160_conn_exist()) {
cds_err("VHT160/80+80 connection exists, no concurrency");
goto done;
}
status = true;
done:

View file

@ -355,8 +355,6 @@ QDF_STATUS csr_reassoc(tpAniSirGlobal pMac, uint32_t sessionId,
tCsrRoamModifyProfileFields *pModProfileFields,
uint32_t *pRoamId, bool fForce);
QDF_STATUS csr_isconcurrentsession_valid(tpAniSirGlobal pMac,
uint32_t cursessionId, enum tQDF_ADAPTER_MODE currBssPersona);
/* BeaconInterval validation for MCC support */
QDF_STATUS csr_validate_mcc_beacon_interval(tpAniSirGlobal pMac, uint8_t channelId,
uint16_t *beaconInterval, uint32_t cursessionId,

View file

@ -14779,21 +14779,10 @@ QDF_STATUS csr_send_mb_start_bss_req_msg(tpAniSirGlobal pMac, uint32_t sessionId
else
wTmp = WNI_CFG_BEACON_INTERVAL_STADEF;
if (csr_isconcurrentsession_valid(pMac, sessionId, pParam->bssPersona)
== QDF_STATUS_SUCCESS) {
csr_validate_mcc_beacon_interval(pMac,
pParam->operationChn,
&wTmp,
sessionId,
pParam->bssPersona);
/* Update the beacon Interval */
pParam->beaconInterval = wTmp;
} else {
sms_log(pMac, LOGE,
FL("****Start BSS failed persona already exists***"));
qdf_mem_free(pMsg);
return QDF_STATUS_E_FAILURE;
}
csr_validate_mcc_beacon_interval(pMac, pParam->operationChn,
&wTmp, sessionId, pParam->bssPersona);
/* Update the beacon Interval */
pParam->beaconInterval = wTmp;
pMsg->beaconInterval = wTmp;
pMsg->dot11mode =
csr_translate_to_wni_cfg_dot11_mode(pMac,

View file

@ -1056,16 +1056,11 @@ bool csr_is_valid_mc_concurrent_session(tpAniSirGlobal mac_ctx,
pSession = CSR_GET_SESSION(mac_ctx, session_id);
if (NULL == pSession->pCurRoamProfile)
return false;
if (QDF_STATUS_SUCCESS ==
csr_isconcurrentsession_valid(mac_ctx, session_id,
pSession->pCurRoamProfile->csrPersona)) {
if (QDF_STATUS_SUCCESS ==
csr_validate_mcc_beacon_interval(mac_ctx,
bss_descr->channelId,
&bss_descr->beaconInterval, session_id,
pSession->pCurRoamProfile->csrPersona))
return true;
}
if (QDF_STATUS_SUCCESS == csr_validate_mcc_beacon_interval(mac_ctx,
bss_descr->channelId,
&bss_descr->beaconInterval, session_id,
pSession->pCurRoamProfile->csrPersona))
return true;
return false;
}
@ -1880,111 +1875,6 @@ bool csr_is_profile_rsn(tCsrRoamProfile *pProfile)
return fRSNProfile;
}
/**
* csr_isconcurrentsession_valid() - check if concurrent session is valid
* @mac_ctx: pointer to mac context
* @cur_sessionid: current session id
* @cur_bss_persona: current BSS persona
*
* This function will check if concurrent session is valid
*
* Return: QDF_STATUS
*/
QDF_STATUS
csr_isconcurrentsession_valid(tpAniSirGlobal mac_ctx, uint32_t cur_sessionid,
enum tQDF_ADAPTER_MODE cur_bss_persona)
{
uint32_t sessionid = 0;
enum tQDF_ADAPTER_MODE bss_persona;
eCsrConnectState connect_state, temp;
tCsrRoamSession *roam_session;
for (sessionid = 0; sessionid < CSR_ROAM_SESSION_MAX; sessionid++) {
if (cur_sessionid == sessionid)
continue;
if (!CSR_IS_SESSION_VALID(mac_ctx, sessionid))
continue;
roam_session = &mac_ctx->roam.roamSession[sessionid];
bss_persona = roam_session->bssParams.bssPersona;
connect_state = roam_session->connectState;
switch (cur_bss_persona) {
case QDF_STA_MODE:
QDF_TRACE(QDF_MODULE_ID_SME,
QDF_TRACE_LEVEL_INFO,
FL("** STA session **"));
return QDF_STATUS_SUCCESS;
case QDF_SAP_MODE:
temp = eCSR_ASSOC_STATE_TYPE_IBSS_DISCONNECTED;
if ((bss_persona == QDF_IBSS_MODE)
&& (connect_state != temp)) {
/* allow IBSS+SAP for Emulation only */
#ifndef QCA_WIFI_3_0_EMU
QDF_TRACE(QDF_MODULE_ID_SME,
QDF_TRACE_LEVEL_ERROR,
FL("Can't start SAP"));
return QDF_STATUS_E_FAILURE;
#endif
}
break;
case QDF_P2P_GO_MODE:
temp = eCSR_ASSOC_STATE_TYPE_IBSS_DISCONNECTED;
if ((bss_persona == QDF_IBSS_MODE)
&& (connect_state != temp)) {
QDF_TRACE(QDF_MODULE_ID_SME,
QDF_TRACE_LEVEL_ERROR,
FL("Can't start SAP"));
return QDF_STATUS_E_FAILURE;
}
break;
case QDF_IBSS_MODE:
if ((bss_persona == QDF_IBSS_MODE) &&
(connect_state ==
eCSR_ASSOC_STATE_TYPE_IBSS_CONNECTED)) {
QDF_TRACE(QDF_MODULE_ID_SME,
QDF_TRACE_LEVEL_ERROR,
FL("IBSS mode already exist"));
return QDF_STATUS_E_FAILURE;
} else if (((bss_persona == QDF_P2P_GO_MODE) ||
(bss_persona == QDF_SAP_MODE)) &&
(connect_state !=
eCSR_ASSOC_STATE_TYPE_NOT_CONNECTED)) {
/* allow IBSS+SAP for Emulation only */
#ifndef QCA_WIFI_3_0_EMU
QDF_TRACE(QDF_MODULE_ID_SME,
QDF_TRACE_LEVEL_ERROR,
FL("Can't start GO/SAP"));
return QDF_STATUS_E_FAILURE;
#endif
}
break;
case QDF_P2P_CLIENT_MODE:
QDF_TRACE(QDF_MODULE_ID_SME,
QDF_TRACE_LEVEL_INFO,
FL("**P2P-Client session**"));
return QDF_STATUS_SUCCESS;
case QDF_NDI_MODE:
if (bss_persona != QDF_STA_MODE) {
QDF_TRACE(QDF_MODULE_ID_SME,
QDF_TRACE_LEVEL_ERROR,
FL("***NDI mode can co-exist only with STA ***"));
return QDF_STATUS_E_FAILURE;
}
break;
default:
QDF_TRACE(QDF_MODULE_ID_SME,
QDF_TRACE_LEVEL_ERROR,
FL("Persona not handled = %d"),
cur_bss_persona);
break;
}
}
return QDF_STATUS_SUCCESS;
}
/**
* csr_update_mcc_p2p_beacon_interval() - update p2p beacon interval
* @mac_ctx: pointer to mac context