diff --git a/Kbuild b/Kbuild index 4da94ea679..a0730eee20 100644 --- a/Kbuild +++ b/Kbuild @@ -3999,6 +3999,9 @@ cppflags-$(CONFIG_SAE_SINGLE_PMK) += -DWLAN_SAE_SINGLE_PMK #Flag to enable/disable multi client low latency feature support cppflags-$(CONFIG_MULTI_CLIENT_LL_SUPPORT) += -DMULTI_CLIENT_LL_SUPPORT +#Flag to enable/disable vendor handoff control feature support +cppflags-$(CONFIG_WLAN_VENDOR_HANDOFF_CONTROL) += -DWLAN_VENDOR_HANDOFF_CONTROL + #Flag to enable/disable mscs feature cppflags-$(CONFIG_FEATURE_MSCS) += -DWLAN_FEATURE_MSCS diff --git a/components/mlme/dispatcher/inc/wlan_mlme_api.h b/components/mlme/dispatcher/inc/wlan_mlme_api.h index 5a59b00fb4..d8de699c06 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_api.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_api.h @@ -288,6 +288,23 @@ wlan_mlme_get_wlm_multi_client_ll_caps(struct wlan_objmgr_psoc *psoc) QDF_STATUS wlan_mlme_set_band_capability(struct wlan_objmgr_psoc *psoc, uint32_t band_capability); +#ifdef WLAN_VENDOR_HANDOFF_CONTROL +/** + * wlan_mlme_get_vendor_handoff_control_caps() - Get the vendor handoff control + * capability flag + * @psoc: pointer to psoc object + * + * Return: True if vendor handoff control caps present + */ +bool wlan_mlme_get_vendor_handoff_control_caps(struct wlan_objmgr_psoc *psoc); +#else +static inline bool +wlan_mlme_get_vendor_handoff_control_caps(struct wlan_objmgr_psoc *psoc) +{ + return false; +} +#endif + /** * wlan_mlme_set_dual_sta_policy() - Set the dual sta config * @psoc: pointer to psoc object diff --git a/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h b/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h index 0f94c68ed1..a73720982b 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h @@ -292,6 +292,23 @@ QDF_STATUS ucfg_mlme_set_band_capability(struct wlan_objmgr_psoc *psoc, return wlan_mlme_set_band_capability(psoc, band_capability); } +#ifdef WLAN_VENDOR_HANDOFF_CONTROL +/** + * ucfg_mlme_get_vendor_handoff_control_caps() - Get vendor handoff control + * capability of FW + * @psoc: pointer to psoc object + * + * Return: true if vendor handoff feature supported + */ +bool ucfg_mlme_get_vendor_handoff_control_caps(struct wlan_objmgr_psoc *psoc); +#else +static inline +bool ucfg_mlme_get_vendor_handoff_control_caps(struct wlan_objmgr_psoc *psoc) +{ + return false; +} +#endif + /** * ucfg_mlme_set_dual_sta_policy() - Configures the Concurrent STA policy * value diff --git a/components/mlme/dispatcher/src/wlan_mlme_api.c b/components/mlme/dispatcher/src/wlan_mlme_api.c index 6f494f5877..760e705e3e 100644 --- a/components/mlme/dispatcher/src/wlan_mlme_api.c +++ b/components/mlme/dispatcher/src/wlan_mlme_api.c @@ -242,6 +242,14 @@ QDF_STATUS wlan_mlme_set_band_capability(struct wlan_objmgr_psoc *psoc, return QDF_STATUS_SUCCESS; } +#ifdef WLAN_VENDOR_HANDOFF_CONTROL +bool wlan_mlme_get_vendor_handoff_control_caps(struct wlan_objmgr_psoc *psoc) +{ + return wlan_psoc_nif_fw_ext2_cap_get(psoc, + WLAN_SOC_VENDOR_HANDOFF_CONTROL); +} +#endif + QDF_STATUS wlan_mlme_set_dual_sta_policy(struct wlan_objmgr_psoc *psoc, uint8_t dual_sta_config) diff --git a/components/mlme/dispatcher/src/wlan_mlme_ucfg_api.c b/components/mlme/dispatcher/src/wlan_mlme_ucfg_api.c index 063b7b7d4c..336fc33fa0 100644 --- a/components/mlme/dispatcher/src/wlan_mlme_ucfg_api.c +++ b/components/mlme/dispatcher/src/wlan_mlme_ucfg_api.c @@ -1067,6 +1067,13 @@ ucfg_mlme_cfg_get_multi_client_ll_ini_support(struct wlan_objmgr_psoc *psoc, } #endif +#ifdef WLAN_VENDOR_HANDOFF_CONTROL +bool ucfg_mlme_get_vendor_handoff_control_caps(struct wlan_objmgr_psoc *psoc) +{ + return wlan_mlme_get_vendor_handoff_control_caps(psoc); +} +#endif + #ifdef FEATURE_WLAN_ESE QDF_STATUS ucfg_mlme_is_ese_enabled(struct wlan_objmgr_psoc *psoc, bool *val) diff --git a/configs/default_defconfig b/configs/default_defconfig index 427688ddc3..c32eccd6f0 100644 --- a/configs/default_defconfig +++ b/configs/default_defconfig @@ -443,6 +443,9 @@ CONFIG_SAE_SINGLE_PMK := y #Flag to enable/disable multi client low latency feature support CONFIG_MULTI_CLIENT_LL_SUPPORT := y +#Flag to enable/disable vendor handoff feature support +CONFIG_WLAN_VENDOR_HANDOFF_CONTROL := y + #Flag to enable mscs feature CONFIG_FEATURE_MSCS := y