diff --git a/umac/tdls/dispatcher/src/wlan_tdls_ucfg_api.c b/umac/tdls/dispatcher/src/wlan_tdls_ucfg_api.c index 009d8e6ab192..8930e0295272 100644 --- a/umac/tdls/dispatcher/src/wlan_tdls_ucfg_api.c +++ b/umac/tdls/dispatcher/src/wlan_tdls_ucfg_api.c @@ -118,6 +118,34 @@ QDF_STATUS ucfg_tdls_deinit(void) return ret; } +/** + * tdls_update_feature_flag() - update tdls feature flag + * @tdls_soc_obj: pointer to tdls psoc object + * + * This function updates tdls feature flag + */ +static void +tdls_update_feature_flag(struct tdls_soc_priv_obj *tdls_soc_obj) +{ + tdls_soc_obj->tdls_configs.tdls_feature_flags = + ((tdls_soc_obj->tdls_configs.tdls_off_chan_enable ? + 1 << TDLS_FEATURE_OFF_CHANNEL : 0) | + (tdls_soc_obj->tdls_configs.tdls_wmm_mode_enable ? + 1 << TDLS_FEATURE_WMM : 0) | + (tdls_soc_obj->tdls_configs.tdls_buffer_sta_enable ? + 1 << TDLS_FEATURE_BUFFER_STA : 0) | + (tdls_soc_obj->tdls_configs.tdls_sleep_sta_enable ? + 1 << TDLS_FEATURE_SLEEP_STA : 0) | + (tdls_soc_obj->tdls_configs.tdls_scan_enable ? + 1 << TDLS_FEATURE_SCAN : 0) | + (tdls_soc_obj->tdls_configs.tdls_support_enable ? + 1 << TDLS_FEATURE_ENABLE : 0) | + (tdls_soc_obj->tdls_configs.tdls_implicit_trigger_enable ? + 1 << TDLS_FEAUTRE_IMPLICIT_TRIGGER : 0) | + (tdls_soc_obj->tdls_configs.tdls_external_control ? + 1 << TDLS_FEATURE_EXTERNAL_CONTROL : 0)); +} + /** * tdls_object_init_params() - init parameters for tdls object * @tdls_soc_obj: pointer to tdls psoc object @@ -189,23 +217,7 @@ static QDF_STATUS tdls_object_init_params( tdls_soc_obj->tdls_configs.tdls_external_control = cfg_get(psoc, CFG_TDLS_EXTERNAL_CONTROL); - tdls_soc_obj->tdls_configs.tdls_feature_flags = - ((tdls_soc_obj->tdls_configs.tdls_off_chan_enable ? - 1 << TDLS_FEATURE_OFF_CHANNEL : 0) | - (tdls_soc_obj->tdls_configs.tdls_wmm_mode_enable ? - 1 << TDLS_FEATURE_WMM : 0) | - (tdls_soc_obj->tdls_configs.tdls_buffer_sta_enable ? - 1 << TDLS_FEATURE_BUFFER_STA : 0) | - (tdls_soc_obj->tdls_configs.tdls_sleep_sta_enable ? - 1 << TDLS_FEATURE_SLEEP_STA : 0) | - (tdls_soc_obj->tdls_configs.tdls_scan_enable ? - 1 << TDLS_FEATURE_SCAN : 0) | - (tdls_soc_obj->tdls_configs.tdls_support_enable ? - 1 << TDLS_FEATURE_ENABLE : 0) | - (tdls_soc_obj->tdls_configs.tdls_implicit_trigger_enable ? - 1 << TDLS_FEAUTRE_IMPLICIT_TRIGGER : 0) | - (tdls_soc_obj->tdls_configs.tdls_external_control ? - 1 << TDLS_FEATURE_EXTERNAL_CONTROL : 0)); + tdls_update_feature_flag(tdls_soc_obj); return QDF_STATUS_SUCCESS; } @@ -323,6 +335,7 @@ QDF_STATUS ucfg_tdls_update_config(struct wlan_objmgr_psoc *psoc, return QDF_STATUS_E_FAILURE; } + tdls_update_feature_flag(soc_obj); tdls_feature_flags = soc_obj->tdls_configs.tdls_feature_flags; if (!TDLS_IS_IMPLICIT_TRIG_ENABLED(tdls_feature_flags))