Browse Source

qcacld-3.0: Send roam scan_mode/deauth/idle/trigger when rso enabled

In the process of rso update config, need to send roam
scan_mode/deauth/idle/trigger commands when rso enabled.

Another fix is to call csr_cm_roam_scan_offload_fill_rso_configs()
with ROAM_SCAN_OFFLOAD_STOP in wlan_cm_roam_fill_stop_req().

Change-Id: Ibcc2ab5d7da1bf838b386e0e1e486cd43072225a
CRs-Fixed: 2779549
hqu 4 years ago
parent
commit
8bd89b11dd

+ 10 - 9
components/target_if/connection_mgr/src/target_if_cm_roam_offload.c

@@ -1168,14 +1168,6 @@ target_if_cm_roam_send_update_config(struct wlan_objmgr_vdev *vdev,
 		goto end;
 	}
 
-	status = target_if_cm_roam_scan_offload_mode(wmi_handle,
-						     &req->rso_config);
-	if (QDF_IS_STATUS_ERROR(status)) {
-		target_if_err("vdev:%d Send RSO mode cmd failed",
-			      req->rso_config.vdev_id);
-		goto end;
-	}
-
 	status = target_if_cm_roam_scan_filter(wmi_handle,
 					       ROAM_SCAN_OFFLOAD_UPDATE_CFG,
 					       &req->scan_filter_params);
@@ -1228,7 +1220,16 @@ target_if_cm_roam_send_update_config(struct wlan_objmgr_vdev *vdev,
 		return QDF_STATUS_E_INVAL;
 	}
 	vdev_id = wlan_vdev_get_id(vdev);
-	if (!MLME_IS_ROAM_STATE_RSO_ENABLED(psoc, vdev_id)) {
+
+	if (MLME_IS_ROAM_STATE_RSO_ENABLED(psoc, vdev_id)) {
+		status = target_if_cm_roam_scan_offload_mode(wmi_handle,
+							     &req->rso_config);
+		if (QDF_IS_STATUS_ERROR(status)) {
+			target_if_err("vdev:%d Send RSO mode cmd failed",
+				      req->rso_config.vdev_id);
+			goto end;
+		}
+
 		target_if_cm_roam_disconnect_params(
 				wmi_handle, ROAM_SCAN_OFFLOAD_UPDATE_CFG,
 				&req->disconnect_params);

+ 1 - 1
components/umac/mlme/connection_mgr/core/src/wlan_cm_roam_offload.c

@@ -468,7 +468,7 @@ cm_roam_update_config_req(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
 	cm_roam_scan_bmiss_cnt(psoc, vdev_id, &update_req->beacon_miss_cnt);
 	cm_roam_fill_rssi_change_params(psoc, vdev_id,
 					&update_req->rssi_change_params);
-	if (!MLME_IS_ROAM_STATE_RSO_ENABLED(psoc, vdev_id)) {
+	if (MLME_IS_ROAM_STATE_RSO_ENABLED(psoc, vdev_id)) {
 		cm_roam_disconnect_params(psoc, vdev_id,
 					  &update_req->disconnect_params);
 		cm_roam_idle_params(psoc, vdev_id,

+ 1 - 1
core/sme/src/csr/csr_api_roam.c

@@ -21103,7 +21103,7 @@ wlan_cm_roam_fill_stop_req(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
 	csr_cm_roam_scan_offload_fill_rso_configs(mac_ctx, session,
 						  &req->rso_config,
 						  NULL,
-						  ROAM_SCAN_OFFLOAD_START,
+						  ROAM_SCAN_OFFLOAD_STOP,
 						  reason);
 
 	return status;