mt76: vif_mask to struct mt76_phy
authorFelix Fietkau <nbd@nbd.name>
Thu, 11 Jun 2020 15:45:58 +0000 (17:45 +0200)
committerFelix Fietkau <nbd@nbd.name>
Tue, 21 Jul 2020 17:01:15 +0000 (19:01 +0200)
All drivers use this in pretty much the same way. Moving it to core helps with
some checks for the upcoming testmode support

Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt76.h
drivers/net/wireless/mediatek/mt76/mt7603/main.c
drivers/net/wireless/mediatek/mt76/mt7603/mt7603.h
drivers/net/wireless/mediatek/mt76/mt7615/main.c
drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h
drivers/net/wireless/mediatek/mt76/mt76x02.h
drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c
drivers/net/wireless/mediatek/mt76/mt76x02_util.c
drivers/net/wireless/mediatek/mt76/mt7915/main.c
drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h

index 3d7db6ffb599872231a458253b1654034fb22bf9..ece462e9c9aba4ce00d8dfccb5bdb444e1557500 100644 (file)
@@ -491,6 +491,8 @@ struct mt76_phy {
        struct mt76_sband sband_2g;
        struct mt76_sband sband_5g;
 
+       u32 vif_mask;
+
        int txpower_cur;
        u8 antenna_mask;
 };
index 83dfa6da4761edb281bdf9d405009997bb057824..447f2c63ef384a0042f0cdda6ae0abeaab950db9 100644 (file)
@@ -44,7 +44,7 @@ mt7603_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
 
        mutex_lock(&dev->mt76.mutex);
 
-       mvif->idx = ffs(~dev->vif_mask) - 1;
+       mvif->idx = ffs(~dev->mphy.vif_mask) - 1;
        if (mvif->idx >= MT7603_MAX_INTERFACES) {
                ret = -ENOSPC;
                goto out;
@@ -65,7 +65,7 @@ mt7603_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
        }
 
        idx = MT7603_WTBL_RESERVED - 1 - mvif->idx;
-       dev->vif_mask |= BIT(mvif->idx);
+       dev->mphy.vif_mask |= BIT(mvif->idx);
        INIT_LIST_HEAD(&mvif->sta.poll_list);
        mvif->sta.wcid.idx = idx;
        mvif->sta.wcid.hw_key_idx = -1;
@@ -107,7 +107,7 @@ mt7603_remove_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
        spin_unlock_bh(&dev->sta_poll_lock);
 
        mutex_lock(&dev->mt76.mutex);
-       dev->vif_mask &= ~BIT(mvif->idx);
+       dev->mphy.vif_mask &= ~BIT(mvif->idx);
        mutex_unlock(&dev->mt76.mutex);
 }
 
index 7fadf094e9be346ccce13b19b363efb84d4409a2..c86305241e663087bffb55ffc32cd6a96445a0d0 100644 (file)
@@ -108,8 +108,6 @@ struct mt7603_dev {
 
        u32 rxfilter;
 
-       u8 vif_mask;
-
        struct list_head sta_poll_list;
        spinlock_t sta_poll_lock;
 
index f8ce485c8d193f2044ca02b46da593859291d5d0..abb9853eaa8b4e8e4c948a40223f9922cf36f4c4 100644 (file)
@@ -137,7 +137,7 @@ static int mt7615_add_interface(struct ieee80211_hw *hw,
 
        mutex_lock(&dev->mt76.mutex);
 
-       mvif->idx = ffs(~dev->vif_mask) - 1;
+       mvif->idx = ffs(~dev->mphy.vif_mask) - 1;
        if (mvif->idx >= MT7615_MAX_INTERFACES) {
                ret = -ENOSPC;
                goto out;
@@ -157,7 +157,7 @@ static int mt7615_add_interface(struct ieee80211_hw *hw,
        else
                mvif->wmm_idx = mvif->idx % MT7615_MAX_WMM_SETS;
 
-       dev->vif_mask |= BIT(mvif->idx);
+       dev->mphy.vif_mask |= BIT(mvif->idx);
        dev->omac_mask |= BIT(mvif->omac_idx);
        phy->omac_mask |= BIT(mvif->omac_idx);
 
@@ -204,7 +204,7 @@ static void mt7615_remove_interface(struct ieee80211_hw *hw,
                mt76_txq_remove(&dev->mt76, vif->txq);
 
        mutex_lock(&dev->mt76.mutex);
-       dev->vif_mask &= ~BIT(mvif->idx);
+       dev->mphy.vif_mask &= ~BIT(mvif->idx);
        dev->omac_mask &= ~BIT(mvif->omac_idx);
        phy->omac_mask &= ~BIT(mvif->omac_idx);
        mutex_unlock(&dev->mt76.mutex);
index 6e423f45b63f12fdd277897a462278a270b36b67..af86cf6925ddef281fbd1cf03d8faa0b4b6139b7 100644 (file)
@@ -244,7 +244,6 @@ struct mt7615_dev {
        struct tasklet_struct irq_tasklet;
 
        struct mt7615_phy phy;
-       u32 vif_mask;
        u32 omac_mask;
 
        u16 chainmask;
index 4c9bbc7ce023a89e3f2f4f791c99bab22c67839a..4660b9691ec32de29bf646cad567ed7d46d2ff00 100644 (file)
@@ -80,7 +80,6 @@ struct mt76x02_dev {
 
        struct mutex phy_mutex;
 
-       u16 vif_mask;
        u16 chainmask;
 
        u8 txdone_seq;
index cbbe986655fe50c414f9219418e9ea217a5babed..99611515a0933ed9193d67aca49bd22634c7c00f 100644 (file)
@@ -439,7 +439,7 @@ static void mt76x02_reset_state(struct mt76x02_dev *dev)
                memset(msta, 0, sizeof(*msta));
        }
 
-       dev->vif_mask = 0;
+       dev->mphy.vif_mask = 0;
        dev->mt76.beacon_mask = 0;
 }
 
index 44822a849eb1d179cededa49e75153443a7bf15d..dbd4077ea283e16d40e2f12b992c8d23be86d482 100644 (file)
@@ -305,7 +305,7 @@ mt76x02_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
        unsigned int idx = 0;
 
        /* Allow to change address in HW if we create first interface. */
-       if (!dev->vif_mask &&
+       if (!dev->mphy.vif_mask &&
            (((vif->addr[0] ^ dev->mt76.macaddr[0]) & ~GENMASK(4, 1)) ||
             memcmp(vif->addr + 1, dev->mt76.macaddr + 1, ETH_ALEN - 1)))
                mt76x02_mac_setaddr(dev, vif->addr);
@@ -330,11 +330,11 @@ mt76x02_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
                idx += 8;
 
        /* vif is already set or idx is 8 for AP/Mesh/... */
-       if (dev->vif_mask & BIT(idx) ||
+       if (dev->mphy.vif_mask & BIT(idx) ||
            (vif->type != NL80211_IFTYPE_STATION && idx > 7))
                return -EBUSY;
 
-       dev->vif_mask |= BIT(idx);
+       dev->mphy.vif_mask |= BIT(idx);
 
        mt76x02_vif_init(dev, vif, idx);
        return 0;
@@ -348,7 +348,7 @@ void mt76x02_remove_interface(struct ieee80211_hw *hw,
        struct mt76x02_vif *mvif = (struct mt76x02_vif *)vif->drv_priv;
 
        mt76_txq_remove(&dev->mt76, vif->txq);
-       dev->vif_mask &= ~BIT(mvif->idx);
+       dev->mphy.vif_mask &= ~BIT(mvif->idx);
 }
 EXPORT_SYMBOL_GPL(mt76x02_remove_interface);
 
index 0c1217d3acd8501a2bb970280e558d80fbdb385c..f95a0b55c4a2b1b307b57241a9494985d95fc94b 100644 (file)
@@ -125,7 +125,7 @@ static int mt7915_add_interface(struct ieee80211_hw *hw,
 
        mutex_lock(&dev->mt76.mutex);
 
-       mvif->idx = ffs(~phy->vif_mask) - 1;
+       mvif->idx = ffs(~phy->mt76->vif_mask) - 1;
        if (mvif->idx >= MT7915_MAX_INTERFACES) {
                ret = -ENOSPC;
                goto out;
@@ -150,7 +150,7 @@ static int mt7915_add_interface(struct ieee80211_hw *hw,
        if (ret)
                goto out;
 
-       phy->vif_mask |= BIT(mvif->idx);
+       phy->mt76->vif_mask |= BIT(mvif->idx);
        phy->omac_mask |= BIT(mvif->omac_idx);
 
        idx = MT7915_WTBL_RESERVED - mvif->idx;
@@ -194,7 +194,7 @@ static void mt7915_remove_interface(struct ieee80211_hw *hw,
                mt76_txq_remove(&dev->mt76, vif->txq);
 
        mutex_lock(&dev->mt76.mutex);
-       phy->vif_mask &= ~BIT(mvif->idx);
+       phy->mt76->vif_mask &= ~BIT(mvif->idx);
        phy->omac_mask &= ~BIT(mvif->omac_idx);
        mutex_unlock(&dev->mt76.mutex);
 
index 4a063c1e5ea2587f9f709ec24e7d4b5a23d45279..d8a13b4a23599b66279039bc20038afd1a1e16d7 100644 (file)
@@ -120,7 +120,6 @@ struct mt7915_phy {
        struct ieee80211_sband_iftype_data iftype[2][NUM_NL80211_IFTYPES];
 
        u32 rxfilter;
-       u32 vif_mask;
        u32 omac_mask;
 
        u16 noise;