qcacld-3.0: Configuration support for HE testbed defaults
Add support to configure HE testbed defaults configuration
settings.
Change-Id: I13a2158ac2e1fd05465bd74103a96fb427592de0
CRs-Fixed: 2414928
This commit is contained in:
parent
49e3aff542
commit
921b5a5213
@ -823,6 +823,7 @@ struct wlan_mlme_qos {
|
||||
*/
|
||||
struct wlan_mlme_he_caps {
|
||||
tDot11fIEhe_cap dot11_he_cap;
|
||||
tDot11fIEhe_cap he_cap_orig;
|
||||
uint8_t he_ppet_2g[MLME_HE_PPET_LEN];
|
||||
uint8_t he_ppet_5g[MLME_HE_PPET_LEN];
|
||||
uint32_t he_ops_basic_mcs_nss;
|
||||
|
@ -776,6 +776,7 @@ QDF_STATUS mlme_update_tgt_he_caps_in_cfg(struct wlan_objmgr_psoc *psoc,
|
||||
qdf_mem_copy(mlme_obj->cfg.he_caps.he_ppet_5g, wma_cfg->ppet_5g,
|
||||
HE_MAX_PPET_SIZE);
|
||||
|
||||
mlme_obj->cfg.he_caps.he_cap_orig = mlme_obj->cfg.he_caps.dot11_he_cap;
|
||||
return status;
|
||||
}
|
||||
#endif
|
||||
|
@ -5359,6 +5359,8 @@ wlan_hdd_wifi_test_config_policy[
|
||||
.type = NLA_NESTED},
|
||||
[QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_HE_ACTION_TX_TB_PPDU] = {
|
||||
.type = NLA_U8},
|
||||
[QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_SET_HE_TESTBED_DEFAULTS]
|
||||
= {.type = NLA_U8},
|
||||
};
|
||||
|
||||
/**
|
||||
@ -7142,6 +7144,18 @@ __wlan_hdd_cfg80211_set_wifi_test_config(struct wiphy *wiphy,
|
||||
(cfg_val ? true : false));
|
||||
}
|
||||
|
||||
cmd_id = QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_SET_HE_TESTBED_DEFAULTS;
|
||||
if (tb[cmd_id]) {
|
||||
cfg_val = nla_get_u8(tb[cmd_id]);
|
||||
hdd_debug("Configure HE testbed defaults %d", cfg_val);
|
||||
if (!cfg_val)
|
||||
sme_reset_he_caps(hdd_ctx->mac_handle,
|
||||
adapter->vdev_id);
|
||||
else
|
||||
sme_set_he_testbed_def(hdd_ctx->mac_handle,
|
||||
adapter->vdev_id);
|
||||
}
|
||||
|
||||
cmd_id = QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_HE_ACTION_TX_TB_PPDU;
|
||||
if (tb[cmd_id]) {
|
||||
cfg_val = nla_get_u8(tb[cmd_id]);
|
||||
|
@ -2988,6 +2988,19 @@ bool sme_validate_channel_list(mac_handle_t mac_handle,
|
||||
*/
|
||||
void sme_set_amsdu(mac_handle_t mac_handle, bool enable);
|
||||
|
||||
#ifdef WLAN_FEATURE_11AX
|
||||
void sme_set_he_testbed_def(mac_handle_t mac_handle, uint8_t vdev_id);
|
||||
void sme_reset_he_caps(mac_handle_t mac_handle, uint8_t vdev_id);
|
||||
#else
|
||||
static inline void sme_set_he_testbed_def(mac_handle_t mac_handle,
|
||||
uint8_t vdev_id)
|
||||
{
|
||||
}
|
||||
static inline void sme_reset_he_caps(mac_handle_t mac_handle, uint8_t vdev_id)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* sme_get_mcs_idx() - gets mcs index
|
||||
* @max_rate: max rate
|
||||
|
@ -14625,6 +14625,51 @@ void sme_set_amsdu(mac_handle_t mac_handle, bool enable)
|
||||
mac_ctx->is_usr_cfg_amsdu_enabled = enable;
|
||||
}
|
||||
|
||||
#ifdef WLAN_FEATURE_11AX
|
||||
void sme_set_he_testbed_def(mac_handle_t mac_handle, uint8_t vdev_id)
|
||||
{
|
||||
struct mac_context *mac_ctx = MAC_CONTEXT(mac_handle);
|
||||
struct csr_roam_session *session;
|
||||
|
||||
session = CSR_GET_SESSION(mac_ctx, vdev_id);
|
||||
|
||||
if (!session) {
|
||||
sme_debug("No session for id %d", vdev_id);
|
||||
return;
|
||||
}
|
||||
sme_debug("set HE testbed defaults");
|
||||
mac_ctx->mlme_cfg->he_caps.dot11_he_cap.amsdu_in_ampdu = 0;
|
||||
mac_ctx->mlme_cfg->he_caps.dot11_he_cap.twt_request = 0;
|
||||
mac_ctx->mlme_cfg->he_caps.dot11_he_cap.omi_a_ctrl = 0;
|
||||
mac_ctx->mlme_cfg->he_caps.dot11_he_cap.he_ppdu_20_in_160_80p80Mhz = 0;
|
||||
mac_ctx->mlme_cfg->he_caps.dot11_he_cap.he_ppdu_20_in_40Mhz_2G = 0;
|
||||
mac_ctx->mlme_cfg->he_caps.dot11_he_cap.he_ppdu_80_in_160_80p80Mhz = 0;
|
||||
mac_ctx->mlme_cfg->he_caps.dot11_he_cap.dcm_enc_tx = 0;
|
||||
mac_ctx->mlme_cfg->he_caps.dot11_he_cap.dcm_enc_rx = 0;
|
||||
mac_ctx->mlme_cfg->he_caps.dot11_he_cap.max_nc = 0;
|
||||
mac_ctx->mlme_cfg->he_caps.dot11_he_cap.trigger_frm_mac_pad =
|
||||
QCA_WLAN_HE_16US_OF_PROCESS_TIME;
|
||||
csr_update_session_he_cap(mac_ctx, session);
|
||||
}
|
||||
|
||||
void sme_reset_he_caps(mac_handle_t mac_handle, uint8_t vdev_id)
|
||||
{
|
||||
struct mac_context *mac_ctx = MAC_CONTEXT(mac_handle);
|
||||
struct csr_roam_session *session;
|
||||
|
||||
session = CSR_GET_SESSION(mac_ctx, vdev_id);
|
||||
|
||||
if (!session) {
|
||||
sme_err("No session for id %d", vdev_id);
|
||||
return;
|
||||
}
|
||||
sme_debug("reset HE caps");
|
||||
mac_ctx->mlme_cfg->he_caps.dot11_he_cap =
|
||||
mac_ctx->mlme_cfg->he_caps.he_cap_orig;
|
||||
csr_update_session_he_cap(mac_ctx, session);
|
||||
}
|
||||
#endif
|
||||
|
||||
uint8_t sme_get_mcs_idx(uint16_t max_rate, uint8_t rate_flags,
|
||||
uint8_t *nss, uint8_t *mcs_rate_flags)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user