Jelajahi Sumber

qcacld-3.0: Restore default RSO values after STA disconnect

Restore default RSO values after STA disconnect.

Change-Id: I6b230b5a8e00449955d641b440f12925340ca0df
CRs-Fixed: 2605336
Abhishek Ambure 5 tahun lalu
induk
melakukan
f15c50bad1
1 mengubah file dengan 26 tambahan dan 1 penghapusan
  1. 26 1
      core/sme/src/csr/csr_neighbor_roam.c

+ 26 - 1
core/sme/src/csr/csr_neighbor_roam.c

@@ -618,6 +618,29 @@ void csr_roam_reset_roam_params(struct mac_context *mac_ctx)
 			sizeof(tSirMacSSid) * MAX_SSID_ALLOWED_LIST);
 }
 
+#if defined(WLAN_FEATURE_HOST_ROAM) || defined(WLAN_FEATURE_ROAM_OFFLOAD)
+static void csr_roam_restore_default_config(tpAniSirGlobal mac_ctx,
+					    uint8_t vdev_id)
+{
+	struct roam_triggers triggers;
+
+	sme_debug("Disable roam control config done through SET");
+	sme_set_roam_config_enable(MAC_HANDLE(mac_ctx), vdev_id, 0);
+
+	triggers.vdev_id = vdev_id;
+	triggers.trigger_bitmap = 0xff;
+	sme_debug("Reset roam trigger bitmap to 0x%x", triggers.trigger_bitmap);
+	sme_set_roam_triggers(MAC_HANDLE(mac_ctx), &triggers);
+	sme_roam_control_restore_default_config(MAC_HANDLE(mac_ctx),
+						vdev_id);
+}
+#else
+static void csr_roam_restore_default_config(tpAniSirGlobal mac_ctx,
+					    uint8_t vdev_id)
+{
+}
+#endif
+
 /**
  * csr_neighbor_roam_indicate_disconnect() - To indicate disconnect
  * @mac: The handle returned by mac_open
@@ -659,8 +682,10 @@ QDF_STATUS csr_neighbor_roam_indicate_disconnect(struct mac_context *mac,
 	 * clear the roaming parameters that are per connection.
 	 * For a new connection, they have to be programmed again.
 	 */
-	if (!csr_neighbor_middle_of_roaming(mac, sessionId))
+	if (!csr_neighbor_middle_of_roaming(mac, sessionId)) {
 		csr_roam_reset_roam_params(mac);
+		csr_roam_restore_default_config(mac, sessionId);
+	}
 	if (pSession) {
 		roam_session = &mac->roam.roamSession[sessionId];
 		if (pSession->pCurRoamProfile && (QDF_STA_MODE !=