diff --git a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h index 4d2831f6f007..391a6435d8ce 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h @@ -1583,6 +1583,7 @@ struct fw_scan_channels { /* * @mawc_roam_enabled: Enable/Disable MAWC during roaming * @enable_fast_roam_in_concurrency:Enable LFR roaming on STA during concurrency + * @vendor_btm_param: Vendor WTC roam trigger parameters * @lfr3_roaming_offload: Enable/disable roam offload feature * @lfr3_dual_sta_roaming_enabled: Enable/Disable dual sta roaming offload * feature @@ -1700,6 +1701,7 @@ struct wlan_mlme_lfr_cfg { bool mawc_roam_enabled; bool enable_fast_roam_in_concurrency; #ifdef WLAN_FEATURE_ROAM_OFFLOAD + struct wlan_cm_roam_vendor_btm_params vendor_btm_param; bool lfr3_roaming_offload; bool lfr3_dual_sta_roaming_enabled; bool enable_self_bss_roam; 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 dfe687cc5ba5..c4ffb442d3c1 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 @@ -118,8 +118,7 @@ cm_roam_triggers(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id, mlme_get_roam_trigger_bitmap(psoc, vdev_id); params->roam_scan_scheme_bitmap = wlan_cm_get_roam_scan_scheme_bitmap(psoc, vdev_id); - wlan_cm_roam_get_vendor_btm_params(psoc, vdev_id, - ¶ms->vendor_btm_param); + wlan_cm_roam_get_vendor_btm_params(psoc, ¶ms->vendor_btm_param); wlan_cm_roam_get_score_delta_params(psoc, params); wlan_cm_roam_get_min_rssi_params(psoc, params); } diff --git a/components/umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_roam_api.h b/components/umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_roam_api.h index 87ec2aed0be9..591208a4dbc6 100644 --- a/components/umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_roam_api.h +++ b/components/umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_roam_api.h @@ -499,40 +499,33 @@ wlan_cm_dual_sta_roam_update_connect_channels(struct wlan_objmgr_psoc *psoc, /** * wlan_cm_roam_set_vendor_btm_params() - API to set vendor btm params * @psoc: PSOC pointer - * @vdev_id: VDEV id * @param: vendor configured roam trigger param * * Return: none */ void wlan_cm_roam_set_vendor_btm_params(struct wlan_objmgr_psoc *psoc, - uint8_t vdev_id, struct wlan_cm_roam_vendor_btm_params *param); /** * wlan_cm_roam_disable_vendor_btm() - API to disable vendor btm by default * reason * @psoc: PSOC pointer - * @vdev_id: VDEV id * * Return: none */ -void -wlan_cm_roam_disable_vendor_btm(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id); +void wlan_cm_roam_disable_vendor_btm(struct wlan_objmgr_psoc *psoc); /** * wlan_cm_roam_get_vendor_btm_params() - API to get vendor btm param * @psoc: PSOC pointer - * @vdev_id: VDEV id * @param: vendor configured roam trigger param * * Return: none */ -void -wlan_cm_roam_get_vendor_btm_params(struct wlan_objmgr_psoc *psoc, - uint8_t vdev_id, - struct wlan_cm_roam_vendor_btm_params - *param); +void wlan_cm_roam_get_vendor_btm_params( + struct wlan_objmgr_psoc *psoc, + struct wlan_cm_roam_vendor_btm_params *param); /** * wlan_cm_roam_get_score_delta_params() - API to get roam score delta param @@ -656,18 +649,16 @@ wlan_cm_roam_extract_roam_msg_info(wmi_unified_t wmi, void *evt_buf, } static inline void -wlan_cm_roam_disable_vendor_btm(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id) +wlan_cm_roam_disable_vendor_btm(struct wlan_objmgr_psoc *psoc) {} static inline void wlan_cm_roam_set_vendor_btm_params(struct wlan_objmgr_psoc *psoc, - uint8_t vdev_id, struct wlan_cm_roam_vendor_btm_params *param) {} static inline void wlan_cm_roam_get_vendor_btm_params(struct wlan_objmgr_psoc *psoc, - uint8_t vdev_id, struct wlan_cm_roam_vendor_btm_params *param) {} diff --git a/components/umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_roam_public_struct.h b/components/umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_roam_public_struct.h index f378b45dee28..a921123de49d 100644 --- a/components/umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_roam_public_struct.h +++ b/components/umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_roam_public_struct.h @@ -1400,13 +1400,11 @@ struct wlan_cm_rso_configs { * data related structure * @pcl_vdev_cmd_active: Flag to check if vdev level pcl command needs to be * sent or PDEV level PCL command needs to be sent - * @control_param: vendor configured roam control param * @vdev_rso_config: Roam scan offload related configurations. Equivalent to the * legacy tpCsrNeighborRoamControlInfo structure. */ struct wlan_cm_roam { bool pcl_vdev_cmd_active; - struct wlan_cm_roam_vendor_btm_params vendor_btm_param; struct wlan_cm_rso_configs vdev_rso_config; }; diff --git a/components/umac/mlme/connection_mgr/dispatcher/src/wlan_cm_roam_api.c b/components/umac/mlme/connection_mgr/dispatcher/src/wlan_cm_roam_api.c index 292a4081d799..fdd06cc9f36f 100644 --- a/components/umac/mlme/connection_mgr/dispatcher/src/wlan_cm_roam_api.c +++ b/components/umac/mlme/connection_mgr/dispatcher/src/wlan_cm_roam_api.c @@ -391,85 +391,45 @@ wlan_cm_dual_sta_roam_update_connect_channels(struct wlan_objmgr_psoc *psoc, } void -wlan_cm_roam_disable_vendor_btm(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id) +wlan_cm_roam_disable_vendor_btm(struct wlan_objmgr_psoc *psoc) { - struct wlan_objmgr_vdev *vdev; - struct mlme_legacy_priv *mlme_priv; + struct wlan_mlme_psoc_ext_obj *mlme_obj; - vdev = wlan_objmgr_get_vdev_by_id_from_psoc(psoc, vdev_id, - WLAN_MLME_NB_ID); - if (!vdev) { - mlme_err("vdev object is NULL"); + mlme_obj = mlme_get_psoc_ext_obj(psoc); + if (!mlme_obj) return; - } - - mlme_priv = wlan_vdev_mlme_get_ext_hdl(vdev); - if (!mlme_priv) { - mlme_err("vdev legacy private object is NULL"); - wlan_objmgr_vdev_release_ref(vdev, WLAN_MLME_NB_ID); - return; - } /* Set default value of reason code */ - mlme_priv->cm_roam.vendor_btm_param.user_roam_reason = - DISABLE_VENDOR_BTM_CONFIG; - wlan_objmgr_vdev_release_ref(vdev, WLAN_MLME_NB_ID); + mlme_obj->cfg.lfr.vendor_btm_param.user_roam_reason = + DISABLE_VENDOR_BTM_CONFIG; } void wlan_cm_roam_set_vendor_btm_params(struct wlan_objmgr_psoc *psoc, - uint8_t vdev_id, - struct wlan_cm_roam_vendor_btm_params - *param) + struct wlan_cm_roam_vendor_btm_params *param) { - struct wlan_objmgr_vdev *vdev; - struct mlme_legacy_priv *mlme_priv; + struct wlan_mlme_psoc_ext_obj *mlme_obj; - vdev = wlan_objmgr_get_vdev_by_id_from_psoc(psoc, vdev_id, - WLAN_MLME_NB_ID); - if (!vdev) { - mlme_err("vdev object is NULL"); + mlme_obj = mlme_get_psoc_ext_obj(psoc); + if (!mlme_obj) return; - } - mlme_priv = wlan_vdev_mlme_get_ext_hdl(vdev); - if (!mlme_priv) { - mlme_err("vdev legacy private object is NULL"); - wlan_objmgr_vdev_release_ref(vdev, WLAN_MLME_NB_ID); - return; - } - - qdf_mem_copy(&mlme_priv->cm_roam.vendor_btm_param, param, + qdf_mem_copy(&mlme_obj->cfg.lfr.vendor_btm_param, param, sizeof(struct wlan_cm_roam_vendor_btm_params)); - wlan_objmgr_vdev_release_ref(vdev, WLAN_MLME_NB_ID); } void wlan_cm_roam_get_vendor_btm_params(struct wlan_objmgr_psoc *psoc, - uint8_t vdev_id, struct wlan_cm_roam_vendor_btm_params *param) { - struct wlan_objmgr_vdev *vdev; - struct mlme_legacy_priv *mlme_priv; + struct wlan_mlme_psoc_ext_obj *mlme_obj; - vdev = wlan_objmgr_get_vdev_by_id_from_psoc(psoc, vdev_id, - WLAN_MLME_NB_ID); - if (!vdev) { - mlme_err("vdev object is NULL"); + mlme_obj = mlme_get_psoc_ext_obj(psoc); + if (!mlme_obj) return; - } - mlme_priv = wlan_vdev_mlme_get_ext_hdl(vdev); - if (!mlme_priv) { - mlme_err("vdev legacy private object is NULL"); - wlan_objmgr_vdev_release_ref(vdev, WLAN_MLME_NB_ID); - return; - } - - qdf_mem_copy(param, &mlme_priv->cm_roam.vendor_btm_param, + qdf_mem_copy(param, &mlme_obj->cfg.lfr.vendor_btm_param, sizeof(struct wlan_cm_roam_vendor_btm_params)); - - wlan_objmgr_vdev_release_ref(vdev, WLAN_MLME_NB_ID); } void diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c index 7ece5048fa24..0fd1ab3e7671 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.c +++ b/core/hdd/src/wlan_hdd_cfg80211.c @@ -5192,8 +5192,7 @@ hdd_set_roam_with_control_config(struct hdd_context *hdd_ctx, } if (is_wtc_param_updated) { - wlan_cm_roam_set_vendor_btm_params(hdd_ctx->psoc, vdev_id, - ¶m); + wlan_cm_roam_set_vendor_btm_params(hdd_ctx->psoc, ¶m); /* Sends RSO update */ sme_send_vendor_btm_params(hdd_ctx->mac_handle, vdev_id); } diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index 6b9d5659f66d..6b82102992a9 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -5822,8 +5822,7 @@ QDF_STATUS hdd_init_station_mode(struct hdd_adapter *adapter) roam_triggers = ucfg_mlme_get_roaming_triggers(hdd_ctx->psoc); mlme_set_roam_trigger_bitmap(hdd_ctx->psoc, adapter->vdev_id, roam_triggers); - wlan_cm_roam_disable_vendor_btm(hdd_ctx->psoc, - adapter->vdev_id); + wlan_cm_roam_disable_vendor_btm(hdd_ctx->psoc); ucfg_mlme_get_fine_time_meas_cap(hdd_ctx->psoc, &fine_time_meas_cap); sme_cli_set_command(