wifi: mt76: disable HW AMSDU when using fixed rate
authorPeter Chiu <chui-hao.chiu@mediatek.com>
Wed, 6 Sep 2023 08:27:25 +0000 (16:27 +0800)
committerFelix Fietkau <nbd@nbd.name>
Thu, 22 Feb 2024 08:55:16 +0000 (09:55 +0100)
When using fixed rate, HW uses txd DW9 to store tx arrivial time if VTA
is set. It would overwrite the msdu_id in txd and lead to token pending
if amsdu is enable.

Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c

index c7914643e9c058785c0cfc6704ce48687c0e0285..630c6402ec25761f230455e9f01eb8bd37e286ec 100644 (file)
@@ -544,7 +544,7 @@ void mt76_connac2_mac_write_txwi(struct mt76_dev *dev, __le32 *txwi,
        val = FIELD_PREP(MT_TXD5_PID, pid);
        if (pid >= MT_PACKET_ID_FIRST) {
                val |= MT_TXD5_TX_STATUS_HOST;
-               amsdu_en = amsdu_en && !is_mt7921(dev);
+               amsdu_en = 0;
        }
 
        txwi[5] = cpu_to_le32(val);
@@ -579,6 +579,8 @@ void mt76_connac2_mac_write_txwi(struct mt76_dev *dev, __le32 *txwi,
                                spe_idx = 24 + phy_idx;
                        txwi[7] |= cpu_to_le32(FIELD_PREP(MT_TXD7_SPE_IDX, spe_idx));
                }
+
+               txwi[7] &= ~cpu_to_le32(MT_TXD7_HW_AMSDU);
        }
 }
 EXPORT_SYMBOL_GPL(mt76_connac2_mac_write_txwi);