OSDN Git Service

wireless: align HE capabilities A-MPDU Length Exponent Extension
authorJohannes Berg <johannes.berg@intel.com>
Fri, 9 Apr 2021 09:40:20 +0000 (12:40 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 19 Apr 2021 10:50:15 +0000 (12:50 +0200)
The A-MPDU length exponent extension is defined differently in
802.11ax D6.1, align with that.

Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20210409123755.c2a257d3e2df.I3455245d388c52c61dace7e7958dbed7e807cfb6@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/ath/ath11k/mac.c
drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
drivers/net/wireless/mac80211_hwsim.c
drivers/net/wireless/mediatek/mt76/mt7915/init.c
drivers/net/wireless/mediatek/mt76/mt7921/main.c
include/linux/ieee80211.h
net/mac80211/debugfs_sta.c

index 343768a..a44ca32 100644 (file)
@@ -1265,9 +1265,8 @@ static void ath11k_peer_assoc_h_he(struct ath11k *ar,
         * request, then use MAX_AMPDU_LEN_FACTOR as 16 to calculate max_ampdu
         * length.
         */
-       ampdu_factor = (he_cap->he_cap_elem.mac_cap_info[3] &
-                       IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_MASK) >>
-                       IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_SHIFT;
+       ampdu_factor = u8_get_bits(he_cap->he_cap_elem.mac_cap_info[3],
+                                  IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_MASK);
 
        if (ampdu_factor) {
                if (sta->vht_cap.vht_supported)
index 632f20d..d2058cd 100644 (file)
@@ -550,7 +550,7 @@ static const struct ieee80211_sband_iftype_data iwl_he_capa[] = {
                                        IEEE80211_HE_MAC_CAP2_32BIT_BA_BITMAP,
                                .mac_cap_info[3] =
                                        IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
-                                       IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
+                                       IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_2,
                                .mac_cap_info[4] =
                                        IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU |
                                        IEEE80211_HE_MAC_CAP4_MULTI_TID_AGG_TX_QOS_B39,
@@ -636,7 +636,7 @@ static const struct ieee80211_sband_iftype_data iwl_he_capa[] = {
                                        IEEE80211_HE_MAC_CAP2_BSR,
                                .mac_cap_info[3] =
                                        IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
-                                       IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
+                                       IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_2,
                                .mac_cap_info[4] =
                                        IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU,
                                .mac_cap_info[5] =
index d56d209..9630324 100644 (file)
@@ -2795,7 +2795,7 @@ static const struct ieee80211_sband_iftype_data he_capa_2ghz[] = {
                                        IEEE80211_HE_MAC_CAP2_ACK_EN,
                                .mac_cap_info[3] =
                                        IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
-                                       IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
+                                       IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_3,
                                .mac_cap_info[4] = IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU,
                                .phy_cap_info[1] =
                                        IEEE80211_HE_PHY_CAP1_PREAMBLE_PUNC_RX_MASK |
@@ -2839,7 +2839,7 @@ static const struct ieee80211_sband_iftype_data he_capa_2ghz[] = {
                                        IEEE80211_HE_MAC_CAP2_ACK_EN,
                                .mac_cap_info[3] =
                                        IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
-                                       IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
+                                       IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_3,
                                .mac_cap_info[4] = IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU,
                                .phy_cap_info[1] =
                                        IEEE80211_HE_PHY_CAP1_PREAMBLE_PUNC_RX_MASK |
@@ -2885,7 +2885,7 @@ static const struct ieee80211_sband_iftype_data he_capa_5ghz[] = {
                                        IEEE80211_HE_MAC_CAP2_ACK_EN,
                                .mac_cap_info[3] =
                                        IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
-                                       IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
+                                       IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_3,
                                .mac_cap_info[4] = IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU,
                                .phy_cap_info[0] =
                                        IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G |
@@ -2933,7 +2933,7 @@ static const struct ieee80211_sband_iftype_data he_capa_5ghz[] = {
                                        IEEE80211_HE_MAC_CAP2_ACK_EN,
                                .mac_cap_info[3] =
                                        IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
-                                       IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
+                                       IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_3,
                                .mac_cap_info[4] = IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU,
                                .phy_cap_info[0] =
                                        IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G |
index d9a0587..82b9e15 100644 (file)
@@ -476,7 +476,7 @@ mt7915_init_he_caps(struct mt7915_phy *phy, enum nl80211_band band,
                        IEEE80211_HE_MAC_CAP0_HTC_HE;
                he_cap_elem->mac_cap_info[3] =
                        IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
-                       IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_RESERVED;
+                       IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_3;
                he_cap_elem->mac_cap_info[4] =
                        IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU;
 
index fdd9392..23149fc 100644 (file)
@@ -65,7 +65,7 @@ mt7921_init_he_caps(struct mt7921_phy *phy, enum nl80211_band band,
                        IEEE80211_HE_MAC_CAP0_HTC_HE;
                he_cap_elem->mac_cap_info[3] =
                        IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
-                       IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_RESERVED;
+                       IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_3;
                he_cap_elem->mac_cap_info[4] =
                        IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU;
 
index 687db25..c74033a 100644 (file)
@@ -2006,17 +2006,15 @@ int ieee80211_get_vht_max_nss(struct ieee80211_vht_cap *cap,
  * A-MDPU Length Exponent field in the HT capabilities, VHT capabilities and the
  * same field in the HE capabilities.
  */
-#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_USE_VHT        0x00
-#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_1          0x08
-#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2          0x10
-#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_RESERVED       0x18
+#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_0          0x00
+#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_1          0x08
+#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_2          0x10
+#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_3          0x18
 #define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_MASK           0x18
 #define IEEE80211_HE_MAC_CAP3_AMSDU_FRAG                       0x20
 #define IEEE80211_HE_MAC_CAP3_FLEX_TWT_SCHED                   0x40
 #define IEEE80211_HE_MAC_CAP3_RX_CTRL_FRAME_TO_MULTIBSS                0x80
 
-#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_SHIFT          3
-
 #define IEEE80211_HE_MAC_CAP4_BSRP_BQRP_A_MPDU_AGG             0x01
 #define IEEE80211_HE_MAC_CAP4_QTP                              0x02
 #define IEEE80211_HE_MAC_CAP4_BQR                              0x04
index d350224..25b3d48 100644 (file)
@@ -711,17 +711,17 @@ static ssize_t sta_he_capa_read(struct file *file, char __user *userbuf,
        PFLAG(MAC, 3, OFDMA_RA, "OFDMA-RA");
 
        switch (cap[3] & IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_MASK) {
-       case IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_USE_VHT:
-               PRINT("MAX-AMPDU-LEN-EXP-USE-VHT");
+       case IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_0:
+               PRINT("MAX-AMPDU-LEN-EXP-USE-EXT-0");
                break;
-       case IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_1:
-               PRINT("MAX-AMPDU-LEN-EXP-VHT-1");
+       case IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_1:
+               PRINT("MAX-AMPDU-LEN-EXP-VHT-EXT-1");
                break;
-       case IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2:
-               PRINT("MAX-AMPDU-LEN-EXP-VHT-2");
+       case IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_2:
+               PRINT("MAX-AMPDU-LEN-EXP-VHT-EXT-2");
                break;
-       case IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_RESERVED:
-               PRINT("MAX-AMPDU-LEN-EXP-RESERVED");
+       case IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_3:
+               PRINT("MAX-AMPDU-LEN-EXP-VHT-EXT-3");
                break;
        }