mt76: mt76x02: set MT_TXOP_HLDR_TX40M_BLK_EN for mt76x2
authorFelix Fietkau <nbd@nbd.name>
Mon, 25 Feb 2019 17:37:42 +0000 (18:37 +0100)
committerFelix Fietkau <nbd@nbd.name>
Tue, 26 Feb 2019 09:28:19 +0000 (10:28 +0100)
It needs to be always enabled for 76x2 and conditionally enabled/disabled
for 76x0. Since mt76x2_mac_stop clears this bit, ensure that it is enabled
in mt76x02_edcca_init

Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt76x02_mac.c

index 82b178fa83bb7d63d646fa261e4e587c94a55fed..91ff6598eccfb55dfb0fe8e96b4edf6e7941f59f 100644 (file)
@@ -905,14 +905,14 @@ void mt76x02_edcca_init(struct mt76x02_dev *dev, bool enable)
                mt76_set(dev, MT_TXOP_CTRL_CFG, MT_TXOP_ED_CCA_EN);
                mt76_rmw(dev, MT_BBP(AGC, 2), GENMASK(15, 0),
                         ed_th << 8 | ed_th);
-               if (!is_mt76x2(dev))
-                       mt76_set(dev, MT_TXOP_HLDR_ET,
-                                MT_TXOP_HLDR_TX40M_BLK_EN);
+               mt76_set(dev, MT_TXOP_HLDR_ET, MT_TXOP_HLDR_TX40M_BLK_EN);
        } else {
                mt76_set(dev, MT_TX_LINK_CFG, MT_TX_CFACK_EN);
                mt76_clear(dev, MT_TXOP_CTRL_CFG, MT_TXOP_ED_CCA_EN);
                if (is_mt76x2(dev)) {
                        mt76_wr(dev, MT_BBP(AGC, 2), 0x00007070);
+                       mt76_set(dev, MT_TXOP_HLDR_ET,
+                                MT_TXOP_HLDR_TX40M_BLK_EN);
                } else {
                        mt76_wr(dev, MT_BBP(AGC, 2), 0x003a6464);
                        mt76_clear(dev, MT_TXOP_HLDR_ET,