mt76: mt7615: mt7915: disable txpower sku when testmode enabled
authorShayne Chen <shayne.chen@mediatek.com>
Tue, 5 Jan 2021 11:30:45 +0000 (19:30 +0800)
committerFelix Fietkau <nbd@nbd.name>
Tue, 26 Jan 2021 19:07:49 +0000 (20:07 +0100)
When testmode can be enabled, the start() callback would already be
called, causing that txpower sku feature isn't really disabled after
testmode is enabled. This patch fix the issue.

Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7615/main.c
drivers/net/wireless/mediatek/mt76/mt7615/testmode.c
drivers/net/wireless/mediatek/mt76/mt7915/main.c
drivers/net/wireless/mediatek/mt76/mt7915/testmode.c

index 5134d05..3f6c752 100644 (file)
@@ -321,7 +321,7 @@ int mt7615_set_channel(struct mt7615_phy *phy)
        mt7615_mac_set_timing(phy);
        ret = mt7615_dfs_init_radar_detector(phy);
        mt7615_mac_cca_stats_reset(phy);
-       mt7615_mcu_set_sku_en(phy, !mt76_testmode_enabled(phy->mt76));
+       mt7615_mcu_set_sku_en(phy, true);
 
        mt7615_mac_reset_counters(dev);
        phy->noise = 0;
index a0542a3..59d9926 100644 (file)
@@ -138,6 +138,8 @@ mt7615_tm_init(struct mt7615_phy *phy)
        if (!test_bit(MT76_STATE_RUNNING, &phy->mt76->state))
                return;
 
+       mt7615_mcu_set_sku_en(phy, phy->mt76->test.state == MT76_TM_STATE_OFF);
+
        mutex_unlock(&dev->mt76.mutex);
        mt7615_set_channel(phy);
        mt7615_ops.configure_filter(phy->mt76->hw, 0, &total_flags, 0);
index 24d912c..73c5ee1 100644 (file)
@@ -44,7 +44,7 @@ static int mt7915_start(struct ieee80211_hw *hw)
                mt7915_mac_enable_nf(dev, 1);
        }
 
-       mt7915_mcu_set_sku_en(phy, !mt76_testmode_enabled(phy->mt76));
+       mt7915_mcu_set_sku_en(phy, true);
        mt7915_mcu_set_chan_info(phy, MCU_EXT_CMD_SET_RX_PATH);
 
        set_bit(MT76_STATE_RUNNING, &phy->mt76->state);
index 1762d94..012e3cb 100644 (file)
@@ -402,6 +402,8 @@ mt7915_tm_init(struct mt7915_phy *phy, bool en)
        if (!test_bit(MT76_STATE_RUNNING, &phy->mt76->state))
                return;
 
+       mt7915_mcu_set_sku_en(phy, !en);
+
        mt7915_tm_mode_ctrl(dev, en);
        mt7915_tm_reg_backup_restore(phy);
        mt7915_tm_set_trx(phy, TM_MAC_TXRX, !en);