diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index 51a888c16ef5..8fae6f93e804 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -17666,6 +17666,10 @@ csr_update_roam_scan_offload_request(struct mac_context *mac_ctx, struct csr_roam_session *session) { uint32_t pmkid_modes = mac_ctx->mlme_cfg->sta.pmkid_modes; + struct sCsrNeighborRoamControlInfo *neighbor_roam_info; + + neighbor_roam_info = + &mac_ctx->roam.neighborRoamInfo[session->vdev_id]; req_buf->roam_offload_enabled = csr_is_roam_offload_enabled(mac_ctx); if (!req_buf->roam_offload_enabled) @@ -17708,8 +17712,10 @@ csr_update_roam_scan_offload_request(struct mac_context *mac_ctx, mac_ctx->mlme_cfg->lfr.min_delay_btw_roam_scans; req_buf->roam_trigger_reason_bitmask = mac_ctx->mlme_cfg->lfr.roam_trigger_reason_bitmask; + /* Do not force RSSI triggers in case controlled roaming enable */ req_buf->roam_force_rssi_trigger = - mac_ctx->mlme_cfg->lfr.roam_force_rssi_trigger; + (!neighbor_roam_info->roam_control_enable && + mac_ctx->mlme_cfg->lfr.roam_force_rssi_trigger); csr_update_roam_req_adaptive_11r(session, mac_ctx, req_buf); /* fill bss load triggered roam related configs */ diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c index 38c090f62f85..8609872a2c52 100644 --- a/core/wma/src/wma_scan_roam.c +++ b/core/wma/src/wma_scan_roam.c @@ -1890,14 +1890,10 @@ QDF_STATUS wma_process_roaming_config(tp_wma_handle wma_handle, break; mode = WMI_ROAM_SCAN_MODE_PERIODIC; - /* Don't use rssi triggered roam scans if external app - * is in control of channel list. - */ - if (roam_req->ChannelCacheType != CHANNEL_LIST_STATIC || - roam_req->roam_force_rssi_trigger) + if (roam_req->roam_force_rssi_trigger) mode |= WMI_ROAM_SCAN_MODE_RSSI_CHANGE; - } else { + } else if (roam_req->roam_force_rssi_trigger) { mode = WMI_ROAM_SCAN_MODE_RSSI_CHANGE; } @@ -2191,14 +2187,10 @@ QDF_STATUS wma_process_roaming_config(tp_wma_handle wma_handle, break; mode = WMI_ROAM_SCAN_MODE_PERIODIC; - /* Don't use rssi triggered roam scans if external app - * is in control of channel list. - */ - if (roam_req->ChannelCacheType != CHANNEL_LIST_STATIC || - roam_req->roam_force_rssi_trigger) + if (roam_req->roam_force_rssi_trigger) mode |= WMI_ROAM_SCAN_MODE_RSSI_CHANGE; - } else { + } else if (roam_req->roam_force_rssi_trigger) { mode = WMI_ROAM_SCAN_MODE_RSSI_CHANGE; }