wifi: iwlwifi: mvm: use EHT maximum MPDU length on 2.4 GHz
On 2.4 GHz there's no VHT, so EHT defines its own bits for the maximum MPDU length. Use them when telling firmware about the maximum. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Gregory Greenman <gregory.greenman@intel.com> Link: https://lore.kernel.org/r/20230620125813.fd5322bb48a4.Ic471045f83229ceaacce25edcf992d3ce2c75de5@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
592fef3eb6
commit
c7fa5e6828
@ -523,6 +523,7 @@ u16 rs_fw_get_max_amsdu_len(struct ieee80211_sta *sta,
|
||||
{
|
||||
const struct ieee80211_sta_vht_cap *vht_cap = &link_sta->vht_cap;
|
||||
const struct ieee80211_sta_ht_cap *ht_cap = &link_sta->ht_cap;
|
||||
const struct ieee80211_sta_eht_cap *eht_cap = &link_sta->eht_cap;
|
||||
|
||||
if (WARN_ON_ONCE(!link_conf->chandef.chan))
|
||||
return IEEE80211_MAX_MPDU_LEN_VHT_3895;
|
||||
@ -537,8 +538,18 @@ u16 rs_fw_get_max_amsdu_len(struct ieee80211_sta *sta,
|
||||
default:
|
||||
return IEEE80211_MAX_MPDU_LEN_VHT_3895;
|
||||
}
|
||||
} else
|
||||
if (vht_cap->vht_supported) {
|
||||
} else if (link_conf->chandef.chan->band == NL80211_BAND_2GHZ &&
|
||||
eht_cap->has_eht) {
|
||||
switch (u8_get_bits(eht_cap->eht_cap_elem.mac_cap_info[0],
|
||||
IEEE80211_EHT_MAC_CAP0_MAX_MPDU_LEN_MASK)) {
|
||||
case IEEE80211_EHT_MAC_CAP0_MAX_MPDU_LEN_11454:
|
||||
return IEEE80211_MAX_MPDU_LEN_VHT_11454;
|
||||
case IEEE80211_EHT_MAC_CAP0_MAX_MPDU_LEN_7991:
|
||||
return IEEE80211_MAX_MPDU_LEN_VHT_7991;
|
||||
default:
|
||||
return IEEE80211_MAX_MPDU_LEN_VHT_3895;
|
||||
}
|
||||
} else if (vht_cap->vht_supported) {
|
||||
switch (vht_cap->cap & IEEE80211_VHT_CAP_MAX_MPDU_MASK) {
|
||||
case IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_11454:
|
||||
return IEEE80211_MAX_MPDU_LEN_VHT_11454;
|
||||
|
Loading…
x
Reference in New Issue
Block a user