diff --git a/core/sme/inc/sme_api.h b/core/sme/inc/sme_api.h index 308a983968..041c8e57fb 100644 --- a/core/sme/inc/sme_api.h +++ b/core/sme/inc/sme_api.h @@ -2418,6 +2418,15 @@ int sme_update_he_tx_bfee_supp(tHalHandle hal, uint8_t session_id, */ int sme_update_he_tx_bfee_nsts(mac_handle_t hal, uint8_t session_id, uint8_t cfg_val); + +/** + * sme_set_he_tx_bf_cbf_rates() - sets the HE Tx Bfee CBF frame rates to FW + * @session_id: SME session id + * + * Return: None + */ +void sme_set_he_tx_bf_cbf_rates(uint8_t session_id); + /** * sme_update_he_mcs() - sets the HE MCS based on user request * @hal: Pointer to HAL @@ -2572,6 +2581,10 @@ static inline int sme_update_he_tx_bfee_nsts(mac_handle_t hal, uint8_t session_i { return 0; } + +static inline void sme_set_he_tx_bf_cbf_rates(uint8_t session_id) +{ +} #endif /** diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c index 70ed1e8f96..0a22fbed13 100644 --- a/core/sme/src/common/sme_api.c +++ b/core/sme/src/common/sme_api.c @@ -12699,6 +12699,9 @@ int sme_update_tx_bfee_nsts(mac_handle_t hal, uint8_t session_id, return -EFAULT; } + if (usr_cfg_val) + sme_set_he_tx_bf_cbf_rates(session_id); + return sme_update_he_tx_bfee_nsts(hal, session_id, nsts_set_val); } #ifdef WLAN_FEATURE_11AX @@ -12883,6 +12886,23 @@ int sme_update_he_tx_bfee_nsts(mac_handle_t hal, uint8_t session_id, cfg_val); } +void sme_set_he_tx_bf_cbf_rates(uint8_t session_id) +{ + uint32_t tx_bf_cbf_rates_5g[] = {91, 1, 0, 3, 2, 4, 0}; + uint32_t tx_bf_cbf_rates_2g[] = {91, 1, 1, 3, 1, 3, 0}; + QDF_STATUS status; + + status = wma_form_unit_test_cmd_and_send(session_id, 0x48, 7, + tx_bf_cbf_rates_5g); + if (QDF_STATUS_SUCCESS != status) + sme_err("send_unit_test_cmd returned %d", status); + + status = wma_form_unit_test_cmd_and_send(session_id, 0x48, 7, + tx_bf_cbf_rates_2g); + if (QDF_STATUS_SUCCESS != status) + sme_err("send_unit_test_cmd returned %d", status); +} + int sme_update_he_tx_stbc_cap(tHalHandle hal, uint8_t session_id, int value) { int ret;