wifi: mt76: mt7996: fix rate usage of inband discovery frames
authorMeiChia Chiu <meichia.chiu@mediatek.com>
Mon, 23 Oct 2023 15:38:54 +0000 (23:38 +0800)
committerFelix Fietkau <nbd@nbd.name>
Thu, 7 Dec 2023 17:50:21 +0000 (18:50 +0100)
For UBPR and FILS frames, the BSS_CHANGED_BEACON flag will also be set,
which causes those frames to use the beacon rate in TX descriptors.
Adjust the statement to fix this issue.

Fixes: 98686cd21624 ("wifi: mt76: mt7996: add driver for MediaTek Wi-Fi 7 (802.11be) devices")
Signed-off-by: MeiChia Chiu <meichia.chiu@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7996/mac.c

index b17365b8d07b37d4736d14e6d89ace43a6ac4a4a..6f1ade64bcb2e5bb6589fca6b70f48d0d61a042d 100644 (file)
@@ -860,10 +860,10 @@ void mt7996_mac_write_txwi(struct mt7996_dev *dev, __le32 *txwi,
        struct mt76_vif *mvif;
        u16 tx_count = 15;
        u32 val;
-       bool beacon = !!(changed & (BSS_CHANGED_BEACON |
-                                   BSS_CHANGED_BEACON_ENABLED));
        bool inband_disc = !!(changed & (BSS_CHANGED_UNSOL_BCAST_PROBE_RESP |
                                         BSS_CHANGED_FILS_DISCOVERY));
+       bool beacon = !!(changed & (BSS_CHANGED_BEACON |
+                                   BSS_CHANGED_BEACON_ENABLED)) && (!inband_disc);
 
        mvif = vif ? (struct mt76_vif *)vif->drv_priv : NULL;
        if (mvif) {