Browse Source

Merge "qcacld-3.0: Update self RSN caps to FW in RSO update/start cmd" into wlan-cld3.driver.lnx.2.0

CNSS_WLAN Service 4 years ago
parent
commit
5a71295f5d
2 changed files with 21 additions and 4 deletions
  1. 0 1
      core/sme/inc/csr_internal.h
  2. 21 3
      core/sme/src/csr/csr_api_roam.c

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

@@ -516,7 +516,6 @@ struct csr_roam_session {
 	struct qdf_mac_addr self_mac_addr;
 
 	eCsrConnectState connectState;
-	struct rsn_caps rsn_caps;
 	tCsrRoamConnectedProfile connectedProfile;
 	struct csr_roam_connectedinfo connectedInfo;
 	struct csr_roam_connectedinfo prev_assoc_ap_info;

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

@@ -17257,6 +17257,23 @@ csr_add_ch_lst_from_roam_scan_list(struct mac_context *mac_ctx,
 	return QDF_STATUS_SUCCESS;
 }
 
+static void
+csr_rso_command_fill_rsn_caps(struct mac_context *mac_ctx, uint8_t vdev_id,
+			      uint16_t *rsn_caps)
+{
+	struct wlan_objmgr_vdev *vdev;
+
+	vdev = wlan_objmgr_get_vdev_by_id_from_psoc(mac_ctx->psoc, vdev_id,
+						    WLAN_LEGACY_SME_ID);
+	if (!vdev) {
+		sme_err("Invalid vdev");
+		return;
+	}
+
+	*rsn_caps = wlan_crypto_get_param(vdev, WLAN_CRYPTO_PARAM_RSN_CAP);
+	wlan_objmgr_vdev_release_ref(vdev, WLAN_LEGACY_SME_ID);
+}
+
 #ifdef WLAN_FEATURE_11W
 /**
  * csr_rso_command_fill_11w_params() - Fill the 11w related parameters
@@ -17283,7 +17300,7 @@ csr_rso_command_fill_11w_params(struct mac_context *mac_ctx,
 			session_id,
 			WLAN_LEGACY_SME_ID);
 	if (!vdev) {
-		pe_err("Invalid vdev");
+		sme_err("Invalid vdev");
 		return;
 	}
 
@@ -17473,9 +17490,10 @@ csr_create_roam_scan_offload_request(struct mac_context *mac_ctx,
 	req_buf->ConnectedNetwork.mcencryption =
 		mac_ctx->roam.roamSession[session_id].
 		connectedProfile.mcEncryptionType;
-	/* Copy the RSN capabilities in roam offload request from session*/
-	req_buf->rsn_caps = session->rsn_caps;
 
+	/* Copy the self RSN capabilities in roam offload request */
+	csr_rso_command_fill_rsn_caps(mac_ctx, session_id,
+				      (uint16_t *)&req_buf->rsn_caps);
 	csr_rso_command_fill_11w_params(mac_ctx, session_id, req_buf);
 
 	req_buf->delay_before_vdev_stop =