wifi: mt76: connac: set correct muar_idx for mt799x chipsets
authorShayne Chen <shayne.chen@mediatek.com>
Fri, 26 Jan 2024 09:09:22 +0000 (17:09 +0800)
committerFelix Fietkau <nbd@nbd.name>
Thu, 22 Feb 2024 08:55:18 +0000 (09:55 +0100)
The MUAR (multicast unicast address) is an address mapping table that
participates in the process of searching WTBL entries. For mt799x
chipsets, the default muar index of BMC WTBL is 0xe.

Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt76_connac.h
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c

index fdde3d7..98d64d3 100644 (file)
@@ -227,6 +227,11 @@ static inline bool is_mt7992(struct mt76_dev *dev)
        return mt76_chip(dev) == 0x7992;
 }
 
+static inline bool is_mt799x(struct mt76_dev *dev)
+{
+       return is_mt7996(dev) || is_mt7992(dev);
+}
+
 static inline bool is_mt7622(struct mt76_dev *dev)
 {
        if (!IS_ENABLED(CONFIG_MT7622_WMAC))
index ea7ffa1..9aff0c1 100644 (file)
@@ -283,6 +283,9 @@ __mt76_connac_mcu_alloc_sta_req(struct mt76_dev *dev, struct mt76_vif *mvif,
        };
        struct sk_buff *skb;
 
+       if (is_mt799x(dev) && !wcid->sta)
+               hdr.muar_idx = 0xe;
+
        mt76_connac_mcu_get_wlan_idx(dev, wcid, &hdr.wlan_idx_lo,
                                     &hdr.wlan_idx_hi);
        skb = mt76_mcu_msg_alloc(dev, NULL, len);