]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: mt76: mt7996: fix RRO EMU configuration
authorPeter Chiu <chui-hao.chiu@mediatek.com>
Thu, 12 Mar 2026 09:57:19 +0000 (17:57 +0800)
committerFelix Fietkau <nbd@nbd.name>
Tue, 24 Mar 2026 15:49:31 +0000 (15:49 +0000)
Use the correct helper to update specific bitfields instead of
overwriting the entire register.

Fixes: eedb427eb260 ("wifi: mt76: mt7996: Enable HW RRO for MT7992 chipset")
Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Acked-by: Lorenzo Bianconi <lorenzo@kernel.org>
Link: https://patch.msgid.link/20260312095724.2117448-1-shayne.chen@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7996/init.c
drivers/net/wireless/mediatek/mt76/mt7996/mac.c

index 5aaa9376710921667b1fe195e7c63fb7060450f7..f3239f530aea4b9baee95c04ca0b8b33fd65c9d6 100644 (file)
@@ -873,8 +873,7 @@ void mt7996_rro_hw_init(struct mt7996_dev *dev)
                        }
                } else {
                        /* set emul 3.0 function */
-                       mt76_wr(dev, MT_RRO_3_0_EMU_CONF,
-                               MT_RRO_3_0_EMU_CONF_EN_MASK);
+                       mt76_set(dev, MT_RRO_3_0_EMU_CONF, MT_RRO_3_0_EMU_CONF_EN_MASK);
 
                        mt76_wr(dev, MT_RRO_ADDR_ARRAY_BASE0,
                                dev->wed_rro.addr_elem[0].phy_addr);
index e8bf58dc50b163a18275e0ec6c1a8a22ed24e9cd..c895e8a5de4d456a3f479e3ba58e2a9eb3731881 100644 (file)
@@ -2577,7 +2577,7 @@ void mt7996_mac_reset_work(struct work_struct *work)
        mt7996_dma_start(dev, false, false);
 
        if (!is_mt7996(&dev->mt76) && dev->mt76.hwrro_mode == MT76_HWRRO_V3)
-               mt76_wr(dev, MT_RRO_3_0_EMU_CONF, MT_RRO_3_0_EMU_CONF_EN_MASK);
+               mt76_set(dev, MT_RRO_3_0_EMU_CONF, MT_RRO_3_0_EMU_CONF_EN_MASK);
 
        if (mtk_wed_device_active(&dev->mt76.mmio.wed)) {
                u32 wed_irq_mask = MT_INT_TX_DONE_BAND2 |