|
@@ -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 !=
|