mt76: mt7615: reduce maximum VHT MPDU length to 7991
authorFelix Fietkau <nbd@nbd.name>
Wed, 23 Sep 2020 05:24:42 +0000 (07:24 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 24 Sep 2020 13:12:22 +0000 (16:12 +0300)
After fixing mac80211 to allow larger A-MSDUs in some cases, there have been
reports of performance regressions and packet loss with some clients.
It appears that the issue occurs when the hardware is transmitting A-MSDUs
bigger than 8k. Limit the local VHT MPDU size capability to 7991, matching
the value used for MT7915 as well.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20200923052442.24141-1-nbd@nbd.name
drivers/net/wireless/mediatek/mt76/mt7615/init.c

index fc1ebab..1f57b43 100644 (file)
@@ -460,7 +460,7 @@ void mt7615_init_device(struct mt7615_dev *dev)
        dev->mphy.sband_2g.sband.ht_cap.cap |= IEEE80211_HT_CAP_LDPC_CODING;
        dev->mphy.sband_5g.sband.ht_cap.cap |= IEEE80211_HT_CAP_LDPC_CODING;
        dev->mphy.sband_5g.sband.vht_cap.cap |=
-                       IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_11454 |
+                       IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_7991 |
                        IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_MASK;
        mt7615_cap_dbdc_disable(dev);
        dev->phy.dfs_state = -1;