Browse Source

qcacld-3.0: Add op_freq in tagCsrRoamConnectedProfile

Add op_freq in tagCsrRoamConnectedProfile. Finally remove
operationChannel from tagCsrRoamConnectedProfile in next
few changes.

Change-Id: Ie9be4b59483412866d915448b33f8cb6cc9e2d7c
CRs-Fixed: 2489893
hqu 5 năm trước cách đây
mục cha
commit
c7075af31c

+ 1 - 0
core/sme/inc/csr_api.h

@@ -847,6 +847,7 @@ typedef struct tagCsrRoamConnectedProfile {
 	bool handoffPermitted;
 	bool ssidHidden;
 	uint8_t operationChannel;
+	uint32_t op_freq;
 	struct qdf_mac_addr bssid;
 	uint16_t beaconInterval;
 	eCsrRoamBssType BSSType;

+ 9 - 1
core/sme/src/csr/csr_api_roam.c

@@ -1387,6 +1387,7 @@ QDF_STATUS csr_roam_copy_connect_profile(struct mac_context *mac,
 		pProfile->mcEncryptionType = connected_prof->mcEncryptionType;
 		pProfile->BSSType = connected_prof->BSSType;
 		pProfile->operationChannel = connected_prof->operationChannel;
+		pProfile->op_freq = connected_prof->op_freq;
 		qdf_mem_copy(&pProfile->bssid, &connected_prof->bssid,
 			sizeof(struct qdf_mac_addr));
 		qdf_mem_copy(&pProfile->SSID, &connected_prof->SSID,
@@ -3313,6 +3314,7 @@ QDF_STATUS csr_roam_call_callback(struct mac_context *mac, uint32_t sessionId,
 	struct csr_roam_session *pSession;
 	tDot11fBeaconIEs *beacon_ies = NULL;
 	uint8_t chan1, chan2;
+	uint8_t new_chan_num;
 
 	if (!CSR_IS_SESSION_VALID(mac, sessionId)) {
 		sme_err("Session ID: %d is not valid", sessionId);
@@ -3378,8 +3380,11 @@ QDF_STATUS csr_roam_call_callback(struct mac_context *mac, uint32_t sessionId,
 		pSession->bRefAssocStartCnt--;
 	} else if (roam_info && (u1 == eCSR_ROAM_SET_CHANNEL_RSP)
 		   && (u2 == eCSR_ROAM_RESULT_CHANNEL_CHANGE_SUCCESS)) {
-		pSession->connectedProfile.operationChannel =
+		new_chan_num =
 			roam_info->channelChangeRespEvent->newChannelNumber;
+		pSession->connectedProfile.operationChannel = new_chan_num;
+		pSession->connectedProfile.op_freq =
+			wlan_reg_chan_to_freq(mac->pdev, new_chan_num);
 	} else if (u1 == eCSR_ROAM_SESSION_OPENED) {
 		ret = (u2 == eCSR_ROAM_RESULT_SUCCESS) ?
 		      QDF_STATUS_SUCCESS : QDF_STATUS_E_FAILURE;
@@ -8567,6 +8572,7 @@ csr_roam_save_connected_information(struct mac_context *mac,
 	}
 	/* Save bssid */
 	pConnectProfile->operationChannel = pSirBssDesc->channelId;
+	pConnectProfile->op_freq = pSirBssDesc->chan_freq;
 	pConnectProfile->beaconInterval = pSirBssDesc->beaconInterval;
 	if (!pConnectProfile->beaconInterval)
 		sme_err("ERROR: Beacon interval is ZERO");
@@ -11583,6 +11589,7 @@ csr_roam_chk_lnk_swt_ch_ind(struct mac_context *mac_ctx, tSirSmeRsp *msg_ptr)
 	}
 	session->connectedProfile.operationChannel =
 		wlan_reg_freq_to_chan(mac_ctx->pdev, pSwitchChnInd->freq);
+	session->connectedProfile.op_freq = pSwitchChnInd->freq;
 	if (session->pConnectBssDesc) {
 		session->pConnectBssDesc->channelId =
 			wlan_reg_freq_to_chan(mac_ctx->pdev,
@@ -14292,6 +14299,7 @@ static void csr_roam_update_connected_profile_from_new_bss(struct mac_context *m
 		/* Set the operating channel. */
 		pSession->connectedProfile.operationChannel =
 			wlan_reg_freq_to_chan(mac->pdev, pNewBss->freq);
+		pSession->connectedProfile.op_freq = pNewBss->freq;
 		/* move the BSSId from the BSS description into the connected
 		 * state information.
 		 */

+ 1 - 0
core/sme/src/nan/nan_datapath_api.c

@@ -104,6 +104,7 @@ void csr_roam_save_ndi_connected_info(struct mac_context *mac_ctx,
 	connect_profile->modifyProfileFields.uapsd_mask =
 		roam_profile->uapsd_mask;
 	connect_profile->operationChannel = bssdesc->channelId;
+	connect_profile->op_freq = bssdesc->chan_freq;
 	connect_profile->beaconInterval = 0;
 	qdf_mem_copy(&connect_profile->Keys, &roam_profile->Keys,
 		     sizeof(roam_profile->Keys));