From 8bd89b11dda1c65df3332dd9f83c27175b8706bb Mon Sep 17 00:00:00 2001 From: hqu Date: Thu, 17 Sep 2020 23:26:15 +0800 Subject: [PATCH] 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 --- .../src/target_if_cm_roam_offload.c | 19 ++++++++++--------- .../core/src/wlan_cm_roam_offload.c | 2 +- core/sme/src/csr/csr_api_roam.c | 2 +- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/components/target_if/connection_mgr/src/target_if_cm_roam_offload.c b/components/target_if/connection_mgr/src/target_if_cm_roam_offload.c index db44823457c7..3895569ab963 100644 --- a/components/target_if/connection_mgr/src/target_if_cm_roam_offload.c +++ b/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); diff --git a/components/umac/mlme/connection_mgr/core/src/wlan_cm_roam_offload.c b/components/umac/mlme/connection_mgr/core/src/wlan_cm_roam_offload.c index ed49031bb9ee..2141cf594697 100644 --- a/components/umac/mlme/connection_mgr/core/src/wlan_cm_roam_offload.c +++ b/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, diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index a4f1f58d0594..c641fb2584d0 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/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;