Browse Source

qcacld-3.0: Enable RSO for SL open connection

Driver doesn't enable RSO currently for SL + Open auth cases.

Enable the RSO from connect complete path for open auth. Add changes
to enable the RSO only after all the ML links are up in case of
N-link MLO.

Change-Id: Ie3540493660e3605fe6739dc6d7706782b8a78ea
CRs-Fixed: 3509724
Surya Prakash Sivaraj 1 year ago
parent
commit
5f79c535ac

+ 2 - 2
components/umac/mlme/connection_mgr/core/src/wlan_cm_vdev_connect.c

@@ -1527,9 +1527,9 @@ static void cm_process_connect_complete(struct wlan_objmgr_psoc *psoc,
 	    QDF_HAS_PARAM(ucast_cipher, WLAN_CRYPTO_CIPHER_WEP_104) ||
 	    QDF_HAS_PARAM(ucast_cipher, WLAN_CRYPTO_CIPHER_WEP))) {
 		cm_csr_set_ss_none(vdev_id);
-		if (wlan_vdev_mlme_is_mlo_link_vdev(vdev))
+		if (wlan_vdev_mlme_is_mlo_vdev(vdev))
 			mlo_enable_rso(pdev, vdev, rsp);
-		else if (!wlan_vdev_mlme_is_mlo_vdev(vdev))
+		else
 			cm_roam_start_init_on_connect(pdev, vdev_id);
 	} else {
 		if (rsp->is_wps_connection)

+ 10 - 10
components/umac/mlme/mlo_mgr/src/wlan_mlo_mgr_roam.c

@@ -531,17 +531,17 @@ QDF_STATUS mlo_enable_rso(struct wlan_objmgr_pdev *pdev,
 
 	num_partner_links = rsp->ml_parnter_info.num_partner_links;
 
-	if (wlan_vdev_mlme_is_mlo_link_vdev(vdev) ||
-	    !num_partner_links ||
-	    num_partner_links == 1) {
-		assoc_vdev = wlan_mlo_get_assoc_link_vdev(vdev);
-		if (!assoc_vdev) {
-			mlo_err("Assoc vdev is null");
-			return QDF_STATUS_E_NULL_VALUE;
-		}
-		cm_roam_start_init_on_connect(pdev,
-					      wlan_vdev_get_id(assoc_vdev));
+	if (num_partner_links &&
+	    (!wlan_vdev_mlme_is_mlo_link_vdev(vdev) ||
+	     !mlo_check_if_all_links_up(vdev)))
+		return QDF_STATUS_SUCCESS;
+
+	assoc_vdev = wlan_mlo_get_assoc_link_vdev(vdev);
+	if (!assoc_vdev) {
+		mlo_err("Assoc vdev is null");
+		return QDF_STATUS_E_NULL_VALUE;
 	}
+	cm_roam_start_init_on_connect(pdev, wlan_vdev_get_id(assoc_vdev));
 
 	return QDF_STATUS_SUCCESS;
 }