Эх сурвалжийг харах

qcacld-3.0: Send RSO Start followed by RSO Stop for supplicant disabled roam

Currently, if supplicant disabled roaming, driver doesnot send RSO
cmd to fw. This causes roam invoke to fail in FW since RSO start
never happened at least once to configure roaming engine in FW.

After connection, Send RSO start followed by RSO Stop if supplicant
disabled roaming to make sure roaming engine in FW is configured
properly with required parameters at least once.

Change-Id: I72b73554b03ea3f0fa04d0da2a2db96c0ed8b1c8
CRs-Fixed: 2042629
Selvaraj, Sridhar 8 жил өмнө
parent
commit
532ea981c3

+ 1 - 1
core/sme/inc/csr_neighbor_roam.h

@@ -325,7 +325,7 @@ void csr_roam_reset_roam_params(tpAniSirGlobal mac_ptr);
 #define REASON_ROAM_SCAN_STA_ROAM_POLICY_CHANGED    35
 #define REASON_ROAM_SYNCH_FAILED                    36
 #define REASON_ROAM_PSK_PMK_CHANGED                 37
-
+#define REASON_SUPPLICANT_DISABLED_ROAMING          39
 
 #if defined(WLAN_FEATURE_HOST_ROAM) || defined(WLAN_FEATURE_ROAM_OFFLOAD)
 QDF_STATUS csr_roam_offload_scan(tpAniSirGlobal pMac, uint8_t sessionId,

+ 0 - 6
core/sme/src/csr/csr_api_roam.c

@@ -17857,12 +17857,6 @@ csr_roam_offload_scan(tpAniSirGlobal mac_ctx, uint8_t session_id,
 		return QDF_STATUS_E_FAILURE;
 	}
 
-	if ((ROAM_SCAN_OFFLOAD_START == command) &&
-	    (session->pCurRoamProfile &&
-	      session->pCurRoamProfile->do_not_roam)) {
-		sme_debug("Supplicant disabled driver roaming");
-		return QDF_STATUS_E_FAILURE;
-	}
 	if (0 == csr_roam_is_roam_offload_scan_enabled(mac_ctx)) {
 		sme_err("isRoamOffloadScanEnabled not set");
 		return QDF_STATUS_E_FAILURE;

+ 11 - 0
core/sme/src/csr/csr_neighbor_roam.c

@@ -1040,9 +1040,20 @@ static void csr_neighbor_roam_info_ctx_init(
 			}
 		} else
 #endif
+
 			csr_roam_offload_scan(pMac, session_id,
 				ROAM_SCAN_OFFLOAD_START,
 				REASON_CONNECT);
+
+			if (session->pCurRoamProfile &&
+				 session->pCurRoamProfile->do_not_roam) {
+				sme_debug("Supplicant disabled driver roaming");
+
+				csr_roam_offload_scan(pMac, session_id,
+					ROAM_SCAN_OFFLOAD_STOP,
+					REASON_SUPPLICANT_DISABLED_ROAMING);
+			}
+
 	}
 }