wifi: iwlwifi: mvm: add support for Extra EHT LTF
Add support for Extra EHT LTF defined in 9.4.2.313 EHT Capabilities element. Signed-off-by: Gregory Greenman <gregory.greenman@intel.com> Link: https://lore.kernel.org/r/20230613155501.de019d7cc174.I806f0f6042b89274192701a60b4f7900822db666@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
d51439a6d7
commit
18c0ffb404
@ -21,6 +21,7 @@
|
||||
* @IWL_TLC_MNG_CFG_FLAGS_HE_DCM_NSS_2_MSK: enable HE Dual Carrier Modulation
|
||||
* for BPSK (MCS 0) with 2 spatial
|
||||
* streams
|
||||
* @IWL_TLC_MNG_CFG_FLAGS_EHT_EXTRA_LTF_MSK: enable support for EHT extra LTF
|
||||
*/
|
||||
enum iwl_tlc_mng_cfg_flags {
|
||||
IWL_TLC_MNG_CFG_FLAGS_STBC_MSK = BIT(0),
|
||||
@ -28,6 +29,7 @@ enum iwl_tlc_mng_cfg_flags {
|
||||
IWL_TLC_MNG_CFG_FLAGS_HE_STBC_160MHZ_MSK = BIT(2),
|
||||
IWL_TLC_MNG_CFG_FLAGS_HE_DCM_NSS_1_MSK = BIT(3),
|
||||
IWL_TLC_MNG_CFG_FLAGS_HE_DCM_NSS_2_MSK = BIT(4),
|
||||
IWL_TLC_MNG_CFG_FLAGS_EHT_EXTRA_LTF_MSK = BIT(6),
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -1012,6 +1012,8 @@ iwl_nvm_fixup_sband_iftd(struct iwl_trans *trans,
|
||||
iftype_data->eht_cap.eht_cap_elem.phy_cap_info[6] &=
|
||||
~(IEEE80211_EHT_PHY_CAP6_MCS15_SUPP_MASK |
|
||||
IEEE80211_EHT_PHY_CAP6_EHT_DUP_6GHZ_SUPP);
|
||||
iftype_data->eht_cap.eht_cap_elem.phy_cap_info[5] |=
|
||||
IEEE80211_EHT_PHY_CAP5_SUPP_EXTRA_EHT_LTF;
|
||||
}
|
||||
|
||||
if (fw_has_capa(&fw->ucode_capa, IWL_UCODE_TLV_CAPA_BROADCAST_TWT))
|
||||
|
@ -591,6 +591,21 @@ void iwl_mvm_rs_fw_rate_init(struct iwl_mvm *mvm,
|
||||
int cmd_ver;
|
||||
int ret;
|
||||
|
||||
/* Enable external EHT LTF only for GL device and if there's
|
||||
* mutual support by AP and client
|
||||
*/
|
||||
if (CSR_HW_REV_TYPE(mvm->trans->hw_rev) == IWL_CFG_MAC_TYPE_GL &&
|
||||
sband->iftype_data->eht_cap.has_eht &&
|
||||
sband->iftype_data->eht_cap.eht_cap_elem.phy_cap_info[5] &
|
||||
IEEE80211_EHT_PHY_CAP5_SUPP_EXTRA_EHT_LTF &&
|
||||
link_sta->eht_cap.has_eht &&
|
||||
link_sta->eht_cap.eht_cap_elem.phy_cap_info[5] &
|
||||
IEEE80211_EHT_PHY_CAP5_SUPP_EXTRA_EHT_LTF) {
|
||||
IWL_DEBUG_RATE(mvm, "Set support for Extra EHT LTF\n");
|
||||
cfg_cmd.flags |=
|
||||
cpu_to_le16(IWL_TLC_MNG_CFG_FLAGS_EHT_EXTRA_LTF_MSK);
|
||||
}
|
||||
|
||||
rcu_read_lock();
|
||||
mvm_link_sta = rcu_dereference(mvmsta->link[link_id]);
|
||||
if (WARN_ON_ONCE(!mvm_link_sta)) {
|
||||
|
@ -2859,6 +2859,7 @@ ieee80211_he_spr_size(const u8 *he_spr_ie)
|
||||
|
||||
/* Maximum number of supported EHT LTF is split */
|
||||
#define IEEE80211_EHT_PHY_CAP5_MAX_NUM_SUPP_EHT_LTF_MASK 0xc0
|
||||
#define IEEE80211_EHT_PHY_CAP5_SUPP_EXTRA_EHT_LTF 0x40
|
||||
#define IEEE80211_EHT_PHY_CAP6_MAX_NUM_SUPP_EHT_LTF_MASK 0x07
|
||||
|
||||
#define IEEE80211_EHT_PHY_CAP6_MCS15_SUPP_MASK 0x78
|
||||
|
Loading…
x
Reference in New Issue
Block a user