]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: mt76: mt7996: fix the capability of reception of EHT MU PPDU
authorHoward Hsu <howard-yh.hsu@mediatek.com>
Tue, 14 Jan 2025 10:10:19 +0000 (18:10 +0800)
committerFelix Fietkau <nbd@nbd.name>
Tue, 14 Jan 2025 12:42:30 +0000 (13:42 +0100)
This commit includes two changes. First, enable "EHT MU PPDU With 4x
EHT-LTF And 0.8us GI" in EHT Phy capabilities element since hardware
can support. Second, fix the value of "Maximum number of supported
EHT LTFs" in the same element, where the previous setting of 3 in
Bit 3-4 was incorrect.

Fixes: 348533eb968d ("wifi: mt76: mt7996: add EHT capability init")
Signed-off-by: Howard Hsu <howard-yh.hsu@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Link: https://patch.msgid.link/20250114101026.3587702-2-shayne.chen@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7996/init.c

index 43293f72f1dc40402adc88e56fab48650b0ac4ea..cdd4f72337dfc7c75abc0578b33b2373e08067d7 100644 (file)
@@ -1352,21 +1352,20 @@ mt7996_init_eht_caps(struct mt7996_phy *phy, enum nl80211_band band,
                IEEE80211_EHT_PHY_CAP3_CODEBOOK_7_5_MU_FDBK;
 
        eht_cap_elem->phy_cap_info[4] =
+               IEEE80211_EHT_PHY_CAP4_EHT_MU_PPDU_4_EHT_LTF_08_GI |
                u8_encode_bits(min_t(int, sts - 1, 2),
                               IEEE80211_EHT_PHY_CAP4_MAX_NC_MASK);
 
        eht_cap_elem->phy_cap_info[5] =
                u8_encode_bits(IEEE80211_EHT_PHY_CAP5_COMMON_NOMINAL_PKT_PAD_16US,
                               IEEE80211_EHT_PHY_CAP5_COMMON_NOMINAL_PKT_PAD_MASK) |
-               u8_encode_bits(u8_get_bits(0x11, GENMASK(1, 0)),
+               u8_encode_bits(u8_get_bits(1, GENMASK(1, 0)),
                               IEEE80211_EHT_PHY_CAP5_MAX_NUM_SUPP_EHT_LTF_MASK);
 
        val = width == NL80211_CHAN_WIDTH_320 ? 0xf :
              width == NL80211_CHAN_WIDTH_160 ? 0x7 :
              width == NL80211_CHAN_WIDTH_80 ? 0x3 : 0x1;
        eht_cap_elem->phy_cap_info[6] =
-               u8_encode_bits(u8_get_bits(0x11, GENMASK(4, 2)),
-                              IEEE80211_EHT_PHY_CAP6_MAX_NUM_SUPP_EHT_LTF_MASK) |
                u8_encode_bits(val, IEEE80211_EHT_PHY_CAP6_MCS15_SUPP_MASK);
 
        val = u8_encode_bits(nss, IEEE80211_EHT_MCS_NSS_RX) |