wifi: mt76: mt7996: move radio ctrl commands to proper functions
authorShayne Chen <shayne.chen@mediatek.com>
Mon, 5 Jun 2023 15:21:32 +0000 (23:21 +0800)
committerFelix Fietkau <nbd@nbd.name>
Tue, 25 Jul 2023 19:59:41 +0000 (21:59 +0200)
Move radio enable/disable commands into functions for configuring
per-phy radio.

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

index 7d674114653c4c8eb3219f7a90e8e81ca24c1825..9e5057df5f4426a45c5911e7f021e9d569e396e5 100644 (file)
@@ -43,6 +43,10 @@ int mt7996_run(struct ieee80211_hw *hw)
        if (ret)
                goto out;
 
+       ret = mt7996_mcu_set_radio_en(phy, true);
+       if (ret)
+               goto out;
+
        ret = mt7996_mcu_set_chan_info(phy, UNI_CHANNEL_RX_PATH);
        if (ret)
                goto out;
@@ -82,6 +86,8 @@ static void mt7996_stop(struct ieee80211_hw *hw)
 
        mutex_lock(&dev->mt76.mutex);
 
+       mt7996_mcu_set_radio_en(phy, false);
+
        clear_bit(MT76_STATE_RUNNING, &phy->mt76->state);
 
        mutex_unlock(&dev->mt76.mutex);
@@ -190,10 +196,6 @@ static int mt7996_add_interface(struct ieee80211_hw *hw,
        if (ret)
                goto out;
 
-       ret = mt7996_mcu_set_radio_en(phy, true);
-       if (ret)
-               goto out;
-
        dev->mt76.vif_mask |= BIT_ULL(mvif->mt76.idx);
        phy->omac_mask |= BIT_ULL(mvif->mt76.omac_idx);
 
@@ -253,7 +255,6 @@ static void mt7996_remove_interface(struct ieee80211_hw *hw,
                phy->monitor_vif = NULL;
 
        mt7996_mcu_add_dev_info(phy, vif, false);
-       mt7996_mcu_set_radio_en(phy, false);
 
        rcu_assign_pointer(dev->mt76.wcid[idx], NULL);