diff --git a/components/mlme/core/src/wlan_mlme_main.c b/components/mlme/core/src/wlan_mlme_main.c index c5afb28aea..1d9bd1c2ec 100644 --- a/components/mlme/core/src/wlan_mlme_main.c +++ b/components/mlme/core/src/wlan_mlme_main.c @@ -1263,6 +1263,18 @@ static void mlme_init_twt_cfg(struct wlan_objmgr_psoc *psoc, twt_cfg->is_bcast_responder_enabled = CFG_TWT_GET_BCAST_RES(bcast_conf); } +#ifdef WLAN_FEATURE_11BE +static void mlme_init_eht_cap_in_cfg(struct wlan_objmgr_psoc *psoc, + struct wlan_mlme_cfg *mlme_cfg) +{ +} +#else +static void mlme_init_eht_cap_in_cfg(struct wlan_objmgr_psoc *psoc, + struct wlan_mlme_cfg *mlme_cfg) +{ +} +#endif + #ifdef WLAN_FEATURE_SAE static bool is_sae_sap_enabled(struct wlan_objmgr_psoc *psoc) { @@ -2480,6 +2492,7 @@ QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc) mlme_init_nss_chains(psoc, &mlme_cfg->nss_chains_ini_cfg); mlme_init_twt_cfg(psoc, &mlme_cfg->twt_cfg); mlme_init_he_cap_in_cfg(psoc, mlme_cfg); + mlme_init_eht_cap_in_cfg(psoc, mlme_cfg); mlme_init_obss_ht40_cfg(psoc, &mlme_cfg->obss_ht40); mlme_init_product_details_cfg(&mlme_cfg->product_details); mlme_init_powersave_params(psoc, &mlme_cfg->ps_params); diff --git a/components/mlme/dispatcher/inc/wlan_mlme_api.h b/components/mlme/dispatcher/inc/wlan_mlme_api.h index fe15386e7c..0f9a084df0 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_api.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_api.h @@ -938,6 +938,21 @@ QDF_STATUS mlme_update_tgt_he_caps_in_cfg(struct wlan_objmgr_psoc *psoc, struct wma_tgt_cfg *cfg); #endif +#ifdef WLAN_FEATURE_11BE +/** + * mlme_update_tgt_eht_caps_in_cfg() - Update tgt eht cap in mlme component + * + * @psoc: pointer to psoc object + * @cfg: pointer to config params from target + * + * This api to be used by callers to update EHT caps in mlme. + * + * Return: QDF_STATUS_SUCCESS or QDF_STATUS_FAILURE + */ +QDF_STATUS mlme_update_tgt_eht_caps_in_cfg(struct wlan_objmgr_psoc *psoc, + struct wma_tgt_cfg *cfg); +#endif + /** * wlan_mlme_is_ap_prot_enabled() - check if sap protection is enabled * @psoc: pointer to psoc object diff --git a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h index 7170577e73..d160b5dcca 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h @@ -1060,6 +1060,17 @@ struct wlan_mlme_he_caps { }; #endif +#ifdef WLAN_FEATURE_11BE +/** + * struct wlan_mlme_eht_caps - EHT Capabilities related config items + */ +struct wlan_mlme_eht_caps { + tDot11fIEeht_cap dot11_eht_cap; + + /* Add members to store INI configuration corresponding to 11be */ +}; +#endif + /** * struct wlan_mlme_chain_cfg - Chain info related structure * @max_tx_chains_2g: max tx chains supported in 2.4ghz band @@ -2495,6 +2506,9 @@ struct wlan_mlme_cfg { struct wlan_mlme_ht_caps ht_caps; #ifdef WLAN_FEATURE_11AX struct wlan_mlme_he_caps he_caps; +#endif +#ifdef WLAN_FEATURE_11BE + struct wlan_mlme_eht_caps eht_caps; #endif struct wlan_mlme_lfr_cfg lfr; struct wlan_mlme_obss_ht40 obss_ht40; diff --git a/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h b/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h index 333443f046..e8b2fb2eba 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h @@ -3274,6 +3274,26 @@ QDF_STATUS ucfg_mlme_cfg_get_enable_ul_ofdm(struct wlan_objmgr_psoc *psoc, } #endif +#ifdef WLAN_FEATURE_11BE +/** + * ucfg_mlme_update_tgt_eht_cap() - Update tgt EHT cap in mlme component + * + * @psoc: pointer to psoc object + * @cfg: pointer to config params from target + * + * Inline UCFG API to be used by HDD/OSIF callers to update + * EHT caps in mlme. + * + * Return: QDF_STATUS_SUCCESS or QDF_STATUS_FAILURE + */ +static inline QDF_STATUS +ucfg_mlme_update_tgt_eht_cap(struct wlan_objmgr_psoc *psoc, + struct wma_tgt_cfg *cfg) +{ + return mlme_update_tgt_eht_caps_in_cfg(psoc, cfg); +} +#endif + /** * ucfg_mlme_get_80211e_is_enabled() - Enable 802.11e feature * @psoc: pointer to psoc object diff --git a/components/mlme/dispatcher/src/wlan_mlme_api.c b/components/mlme/dispatcher/src/wlan_mlme_api.c index c5a54204c2..31c5aa3626 100644 --- a/components/mlme/dispatcher/src/wlan_mlme_api.c +++ b/components/mlme/dispatcher/src/wlan_mlme_api.c @@ -897,6 +897,14 @@ QDF_STATUS mlme_update_tgt_he_caps_in_cfg(struct wlan_objmgr_psoc *psoc, } #endif +#ifdef WLAN_FEATURE_11BE +QDF_STATUS mlme_update_tgt_eht_caps_in_cfg(struct wlan_objmgr_psoc *psoc, + struct wma_tgt_cfg *wma_cfg) +{ + return QDF_STATUS_SUCCESS; +} +#endif + QDF_STATUS wlan_mlme_get_num_11b_tx_chains(struct wlan_objmgr_psoc *psoc, uint16_t *value) { diff --git a/core/mac/src/include/dph_global.h b/core/mac/src/include/dph_global.h index f53844384a..d77ececfde 100644 --- a/core/mac/src/include/dph_global.h +++ b/core/mac/src/include/dph_global.h @@ -183,6 +183,11 @@ typedef struct sDphHashNode { tDot11fIEhe_cap he_config; uint16_t he_mcs_12_13_map; #endif + +#ifdef WLAN_FEATURE_11BE + tDot11fIEeht_cap eht_config; +#endif + /* Peer operation class, extracted from ASSOC request frame*/ tDot11fIESuppOperatingClasses supp_operating_classes; /*