diff options
author | Shayne Chen <shayne.chen@mediatek.com> | 2024-01-26 17:09:22 +0800 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2024-02-22 09:55:18 +0100 |
commit | 098428c400ff2d0f32b7cc0dc003c8da4b69908d (patch) | |
tree | c40bcd9ec3018b8f32635e20ad4d19cf8ef86f86 /drivers/net/wireless/mediatek | |
parent | 3687854d3e7e7fd760d939dd9e5a3520d5ab60fe (diff) | |
download | linux-098428c400ff2d0f32b7cc0dc003c8da4b69908d.tar.gz linux-098428c400ff2d0f32b7cc0dc003c8da4b69908d.tar.bz2 linux-098428c400ff2d0f32b7cc0dc003c8da4b69908d.zip |
wifi: mt76: connac: set correct muar_idx for mt799x chipsets
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>
Diffstat (limited to 'drivers/net/wireless/mediatek')
-rw-r--r-- | drivers/net/wireless/mediatek/mt76/mt76_connac.h | 5 | ||||
-rw-r--r-- | drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mt76_connac.h b/drivers/net/wireless/mediatek/mt76/mt76_connac.h index fdde3d70b300..98d64d3d2993 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76_connac.h +++ b/drivers/net/wireless/mediatek/mt76/mt76_connac.h @@ -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)) diff --git a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c index ea7ffa16a4b1..9aff0c13efd7 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c @@ -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); |