qcacld-3.0: Restore default RSO configs in driver only on disconnect
Restore default RSO configs in host driver on disconnect, as vdev state
in the firmware is VDEV_STOP no need to update default RSO configs
in firmware.
Change-Id: I061dbfcc5e3fb5350a7fe240d8b1405e1548d7d5
CRs-fixed: 2627107
diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c
index e311560..3b699cc 100644
--- a/core/sme/src/csr/csr_api_roam.c
+++ b/core/sme/src/csr/csr_api_roam.c
@@ -19423,9 +19423,15 @@
return QDF_STATUS_E_FAILURE;
}
- if (!csr_is_conn_state_connected(mac_ctx, session_id) &&
- command == ROAM_SCAN_OFFLOAD_UPDATE_CFG)
+ if (roam_info->neighborRoamState !=
+ eCSR_NEIGHBOR_ROAM_STATE_CONNECTED &&
+ (command == ROAM_SCAN_OFFLOAD_UPDATE_CFG ||
+ command == ROAM_SCAN_OFFLOAD_START ||
+ command == ROAM_SCAN_OFFLOAD_RESTART)) {
+ sme_debug("Session not in connected state, RSO not sent and state=%d ",
+ roam_info->neighborRoamState);
return QDF_STATUS_E_FAILURE;
+ }
temp_session_id = csr_get_roam_enabled_sta_sessionid(mac_ctx);
if ((temp_session_id != WLAN_UMAC_VDEV_ID_MAX) &&
diff --git a/core/sme/src/csr/csr_neighbor_roam.c b/core/sme/src/csr/csr_neighbor_roam.c
index 79c7b73..8b5fef2 100644
--- a/core/sme/src/csr/csr_neighbor_roam.c
+++ b/core/sme/src/csr/csr_neighbor_roam.c
@@ -675,14 +675,7 @@
*/
csr_roam_free_connect_profile(pPrevProfile);
csr_roam_copy_connect_profile(mac, sessionId, pPrevProfile);
- /*
- * 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)) {
- 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 !=
@@ -769,6 +762,16 @@
pNeighborRoamInfo->uOsRequestedHandoff = 0;
break;
}
+
+ /*
+ * 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)) {
+ csr_roam_reset_roam_params(mac);
+ csr_roam_restore_default_config(mac, sessionId);
+ }
+
/*Inform the Firmware to STOP Scanning as the host has a disconnect. */
if (csr_roam_is_sta_mode(mac, sessionId))
csr_post_roam_state_change(mac, sessionId, ROAM_DEINIT,