Browse Source

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
Krunal Soni 8 years ago
parent
commit
cbda8555e6

+ 22 - 17
core/cds/src/cds_concurrency.c

@@ -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:

+ 0 - 2
core/sme/inc/csr_support.h

@@ -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,

+ 4 - 15
core/sme/src/csr/csr_api_roam.c

@@ -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,

+ 5 - 115
core/sme/src/csr/csr_util.c

@@ -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