qcacld-3.0: Add support to configure HE SU PPDU Tx

Add support to configure HE single user PPDU transmission.

Change-Id: I6bb2ead049f64c2ff2d28039f1658d66c4878f5f
CRs-Fixed: 2345247
This commit is contained in:
Kiran Kumar Lokere 2018-09-25 18:53:46 -07:00 • committed by nshrivas
commit efdbd0b267
3 changed files with 44 additions and 0 deletions

View file

@ -5171,6 +5171,8 @@ wlan_hdd_wifi_test_config_policy[
.type = NLA_U8},
[QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_CLEAR_HE_OM_CTRL_CONFIG] = {
.type = NLA_FLAG},
[QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_HE_TX_SUPPDU] = {
.type = NLA_U8},
};
/**
@ -6537,6 +6539,16 @@ __wlan_hdd_cfg80211_set_wifi_test_config(struct wiphy *wiphy,
if (tb[QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_CLEAR_HE_OM_CTRL_CONFIG])
sme_reset_he_om_ctrl(hdd_ctx->mac_handle);
cmd_id = QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_HE_TX_SUPPDU;
if (tb[cmd_id]) {
cfg_val = nla_get_u8(tb[cmd_id]);
hdd_debug("Configure Tx SU PPDU enable %d", cfg_val);
if (cfg_val)
sme_config_su_ppdu_queue(adapter->session_id, true);
else
sme_config_su_ppdu_queue(adapter->session_id, false);
}
if (update_sme_cfg)
sme_update_config(mac_handle, sme_config);

View file

@ -2580,6 +2580,15 @@ int sme_update_he_tx_bfee_nsts(mac_handle_t hal, uint8_t session_id,
*/
void sme_set_he_tx_bf_cbf_rates(uint8_t session_id);
/**
* sme_config_su_ppdu_queue() - Configures SU PPDU queue enable/disable in FW
* @session_id: SME session id
* @enable: Enable/Disable config
*
* Return: None
*/
void sme_config_su_ppdu_queue(uint8_t session_id, bool enable);
/**
* sme_update_he_mcs() - sets the HE MCS based on user request
* @hal: Pointer to HAL
@ -2791,6 +2800,10 @@ static inline int sme_update_he_tx_bfee_nsts(mac_handle_t hal, uint8_t session_i
static inline void sme_set_he_tx_bf_cbf_rates(uint8_t session_id)
{
}
static inline void sme_config_su_ppdu_queue(uint8_t session_id, bool enable)
{
}
#endif
/**

View file

@ -12907,6 +12907,25 @@ void sme_set_he_tx_bf_cbf_rates(uint8_t session_id)
sme_err("send_unit_test_cmd returned %d", status);
}
void sme_config_su_ppdu_queue(uint8_t session_id, bool enable)
{
uint32_t su_ppdu_enable[] = {69, 1, 1, 1};
uint32_t su_ppdu_disable[] = {69, 1, 1, 0};
QDF_STATUS status;
if (enable) {
sme_debug("Send Tx SU PPDU queue ENABLE cmd to FW");
status = wma_form_unit_test_cmd_and_send(session_id, 0x48, 4,
su_ppdu_enable);
} else {
sme_debug("Send Tx SU PPDU queue DISABLE cmd to FW");
status = wma_form_unit_test_cmd_and_send(session_id, 0x48, 4,
su_ppdu_disable);
}
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;