Quellcode durchsuchen

qcacld-3.0: Use regulatory component api to check 11d support

Replace the legacy csr api with regulatory component public api
to check if the 11d support is enabled by host.

Change-Id: I53c2378cf010693d4efa7ff8ff611e6062569adb
CRs-Fixed: 2048784
Kiran Kumar Lokere vor 8 Jahren
Ursprung
Commit
3beeb95c60

+ 3 - 1
core/hdd/src/wlan_hdd_main.c

@@ -119,6 +119,7 @@
 #include "wlan_hdd_he.h"
 #include "os_if_nan.h"
 #include "nan_public_structs.h"
+#include "wlan_reg_ucfg_api.h"
 
 #ifdef CNSS_GENL
 #include <net/cnss_nl.h>
@@ -2994,6 +2995,7 @@ int hdd_vdev_ready(hdd_adapter_t *adapter)
 	QDF_STATUS status;
 
 	status = pmo_vdev_ready(adapter->hdd_vdev);
+	status = ucfg_reg_11d_vdev_created_update(adapter->hdd_vdev);
 
 	return qdf_status_to_os_return(status);
 }
@@ -3012,7 +3014,7 @@ int hdd_vdev_destroy(hdd_adapter_t *adapter)
 		hdd_err("vdev for Id %d does not exist", adapter->sessionId);
 		return -EINVAL;
 	}
-
+	status = ucfg_reg_11d_vdev_delete_update(adapter->hdd_vdev);
 	/* do vdev logical destroy via objmgr */
 	errno = hdd_objmgr_destroy_vdev(adapter);
 	if (errno) {

+ 1 - 1
core/sme/src/common/sme_api.c

@@ -5020,7 +5020,7 @@ bool sme_is11d_supported(tHalHandle hHal)
 {
 	tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
 
-	return csr_is11d_supported(pMac);
+	return wlan_reg_11d_enabled_on_host(pMac->psoc);
 }
 
 bool sme_is11h_supported(tHalHandle hHal)

+ 26 - 21
core/sme/src/csr/csr_api_roam.c

@@ -2543,7 +2543,7 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
 		pMac->roam.configParam.nTxPowerCap = pParam->nTxPowerCap;
 		pMac->roam.configParam.allow_tpc_from_ap =
 				pParam->allow_tpc_from_ap;
-		if (csr_is11d_supported(pMac))
+		if (wlan_reg_11d_enabled_on_host(pMac->psoc))
 			status = csr_init11d_info(pMac, &pParam->Csr11dinfo);
 		else
 			pMac->scan.curScanType = eSIR_ACTIVE_SCAN;
@@ -2552,7 +2552,8 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
 		 * enabled. If 11d is enabled this information has already
 		 * been initialized
 		 */
-		if (csr_is11h_supported(pMac) && !csr_is11d_supported(pMac))
+		if (csr_is11h_supported(pMac) &&
+				!wlan_reg_11d_enabled_on_host(pMac->psoc))
 			csr_init_channel_power_list(pMac, &pParam->Csr11dinfo);
 
 		qdf_mem_copy(&pMac->roam.configParam.csr11rConfig,
@@ -5003,7 +5004,7 @@ QDF_STATUS csr_roam_set_bss_config_cfg(tpAniSirGlobal pMac, uint32_t sessionId,
 					pMac, pBssDesc, pIes, true)) {
 			csr_apply_country_information(pMac);
 		}
-		if ((csr_is11d_supported(pMac)) && pIes) {
+		if ((wlan_reg_11d_enabled_on_host(pMac->psoc)) && pIes) {
 			if (!pIes->Country.present)
 				csr_apply_channel_power_info_wrapper(pMac);
 			else
@@ -15416,6 +15417,7 @@ static QDF_STATUS csr_roam_session_opened(tpAniSirGlobal pMac,
 	status = csr_roam_call_callback(pMac, sessionId, &roamInfo, 0,
 					eCSR_ROAM_SESSION_OPENED,
 					eCSR_ROAM_RESULT_NONE);
+
 	return status;
 }
 
@@ -15839,26 +15841,29 @@ QDF_STATUS csr_roam_close_session(tpAniSirGlobal pMac, uint32_t sessionId,
 				  void *pContext)
 {
 	QDF_STATUS status = QDF_STATUS_SUCCESS;
+	tCsrRoamSession *pSession;
 
-	if (CSR_IS_SESSION_VALID(pMac, sessionId)) {
-		tCsrRoamSession *pSession = CSR_GET_SESSION(pMac, sessionId);
-		/* Vdev going down stop roaming */
-		pSession->fCancelRoaming = true;
-		if (fSync) {
-			csr_cleanup_session(pMac, sessionId);
-		} else {
-			purge_sme_session_pending_cmd_list(pMac, sessionId);
-			purge_sme_session_active_cmd_list(pMac, sessionId);
-			purge_sme_session_pending_scan_cmd_list(pMac,
-								sessionId);
-			status = csr_issue_del_sta_for_session_req(pMac,
-						 sessionId,
-						 pSession->selfMacAddr.bytes,
-						 callback, pContext);
-		}
-	} else {
-		status = QDF_STATUS_E_INVAL;
+	if (!CSR_IS_SESSION_VALID(pMac, sessionId)) {
+		sme_err("session %d not found", sessionId);
+		return QDF_STATUS_E_INVAL;
 	}
+
+	pSession = CSR_GET_SESSION(pMac, sessionId);
+	/* Vdev going down stop roaming */
+	pSession->fCancelRoaming = true;
+	if (fSync) {
+		csr_cleanup_session(pMac, sessionId);
+		return status;
+	}
+
+	purge_sme_session_pending_cmd_list(pMac, sessionId);
+	purge_sme_session_active_cmd_list(pMac, sessionId);
+	purge_sme_session_pending_scan_cmd_list(pMac,
+			sessionId);
+	status = csr_issue_del_sta_for_session_req(pMac,
+			sessionId,
+			pSession->selfMacAddr.bytes,
+			callback, pContext);
 	return status;
 }
 

+ 3 - 3
core/sme/src/csr/csr_api_scan.c

@@ -403,7 +403,7 @@ csr_issue_11d_scan(tpAniSirGlobal mac_ctx, tSmeCmd *scan_cmd,
 			QDF_TIMER_TYPE_SW,
 			csr_scan_active_list_timeout_handle, scan_11d_cmd);
 
-	if (csr_is11d_supported(mac_ctx)) {
+	if (wlan_reg_11d_enabled_on_host(mac_ctx->psoc)) {
 		tmp_rq.bcnRptReqScan = scan_req->bcnRptReqScan;
 		if (scan_req->bcnRptReqScan)
 			tmp_rq.scanType = scan_req->scanType ?
@@ -2229,7 +2229,7 @@ void csr_apply_country_information(tpAniSirGlobal pMac)
 	v_REGDOMAIN_t domainId;
 	QDF_STATUS status = QDF_STATUS_SUCCESS;
 
-	if (!csr_is11d_supported(pMac)
+	if (!wlan_reg_11d_enabled_on_host(pMac->psoc)
 	    || 0 == pMac->scan.channelOf11dInfo)
 		return;
 	status = csr_get_regulatory_domain_for_country(pMac,
@@ -2338,7 +2338,7 @@ bool csr_learn_11dcountry_information(tpAniSirGlobal pMac,
 		useVoting = true;
 
 	/* check if .11d support is enabled */
-	if (!csr_is11d_supported(pMac))
+	if (!wlan_reg_11d_enabled_on_host(pMac->psoc))
 		goto free_ie;
 
 	if (false == useVoting) {

+ 1 - 1
core/sme/src/csr/csr_util.c

@@ -5904,7 +5904,7 @@ bool csr_match_country_code(tpAniSirGlobal pMac, uint8_t *pCountry,
 	bool fRet = true;
 
 	do {
-		if (!csr_is11d_supported(pMac))
+		if (!wlan_reg_11d_enabled_on_host(pMac->psoc))
 			break;
 
 		if (!pIes) {