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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Jan 2024 23:35:24 +0000 (15:35 -0800)
[ Upstream commit 1e3f387736c744e73b5398a147b90412f82f54da ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/mediatek/mt76/mt7996/mac.c

index c43839a..26d5675 100644 (file)
@@ -840,10 +840,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) {