|
@@ -1872,6 +1872,7 @@ QDF_STATUS wma_process_roaming_config(tp_wma_handle wma_handle,
|
|
&enable_roam_reason_vsie);
|
|
&enable_roam_reason_vsie);
|
|
wma_set_vdev_roam_reason_vsie(wma_handle, roam_req->sessionId,
|
|
wma_set_vdev_roam_reason_vsie(wma_handle, roam_req->sessionId,
|
|
enable_roam_reason_vsie);
|
|
enable_roam_reason_vsie);
|
|
|
|
+ wma_set_roam_triggers(wma_handle, &roam_req->roam_triggers);
|
|
|
|
|
|
/* Opportunistic scan runs on a timer, value set by
|
|
/* Opportunistic scan runs on a timer, value set by
|
|
* EmptyRefreshScanPeriod. Age out the entries after 3 such
|
|
* EmptyRefreshScanPeriod. Age out the entries after 3 such
|
|
@@ -2071,6 +2072,18 @@ QDF_STATUS wma_process_roaming_config(tp_wma_handle wma_handle,
|
|
wma_send_disconnect_roam_params(wma_handle, roam_req);
|
|
wma_send_disconnect_roam_params(wma_handle, roam_req);
|
|
wma_send_idle_roam_params(wma_handle, roam_req);
|
|
wma_send_idle_roam_params(wma_handle, roam_req);
|
|
|
|
|
|
|
|
+ /*
|
|
|
|
+ * Disable all roaming triggers if RSO stop is as part of
|
|
|
|
+ * disconnect
|
|
|
|
+ */
|
|
|
|
+ if (mode == WMI_ROAM_SCAN_MODE_NONE) {
|
|
|
|
+ struct roam_triggers roam_triggers;
|
|
|
|
+
|
|
|
|
+ roam_triggers.vdev_id = roam_req->sessionId;
|
|
|
|
+ roam_triggers.trigger_bitmap = 0;
|
|
|
|
+ wma_set_roam_triggers(wma_handle, &roam_triggers);
|
|
|
|
+ }
|
|
|
|
+
|
|
if (roam_req->reason ==
|
|
if (roam_req->reason ==
|
|
REASON_OS_REQUESTED_ROAMING_NOW) {
|
|
REASON_OS_REQUESTED_ROAMING_NOW) {
|
|
struct scheduler_msg cds_msg = {0};
|
|
struct scheduler_msg cds_msg = {0};
|
|
@@ -6296,11 +6309,8 @@ int wma_handle_btm_blacklist_event(void *handle, uint8_t *cmd_param_info,
|
|
QDF_STATUS wma_set_roam_triggers(tp_wma_handle wma,
|
|
QDF_STATUS wma_set_roam_triggers(tp_wma_handle wma,
|
|
struct roam_triggers *triggers)
|
|
struct roam_triggers *triggers)
|
|
{
|
|
{
|
|
- if (!wma_is_vdev_valid(triggers->vdev_id)) {
|
|
|
|
- WMA_LOGE("%s: vdev_id: %d is not active", __func__,
|
|
|
|
- triggers->vdev_id);
|
|
|
|
|
|
+ if (!wma_is_vdev_valid(triggers->vdev_id))
|
|
return QDF_STATUS_E_INVAL;
|
|
return QDF_STATUS_E_INVAL;
|
|
- }
|
|
|
|
|
|
|
|
return wmi_unified_set_roam_triggers(wma->wmi_handle, triggers);
|
|
return wmi_unified_set_roam_triggers(wma->wmi_handle, triggers);
|
|
}
|
|
}
|