mt76: move band capabilities in mt76_phy
authorLorenzo Bianconi <lorenzo@kernel.org>
Thu, 12 Nov 2020 09:56:56 +0000 (10:56 +0100)
committerFelix Fietkau <nbd@nbd.name>
Fri, 4 Dec 2020 13:31:15 +0000 (14:31 +0100)
This is a preliminary patch to move properly support mt7915 dbdc

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mac80211.c
drivers/net/wireless/mediatek/mt76/mt76.h
drivers/net/wireless/mediatek/mt76/mt7603/eeprom.c
drivers/net/wireless/mediatek/mt76/mt7615/dma.c
drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c
drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c
drivers/net/wireless/mediatek/mt76/mt76x0/init.c
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
drivers/net/wireless/mediatek/mt76/mt76x02_eeprom.c
drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c
drivers/net/wireless/mediatek/mt76/mt7915/init.c

index 0fc0902..28c247c 100644 (file)
@@ -159,9 +159,9 @@ static void mt76_init_stream_cap(struct mt76_phy *phy,
 
 void mt76_set_stream_caps(struct mt76_phy *phy, bool vht)
 {
-       if (phy->dev->cap.has_2ghz)
+       if (phy->cap.has_2ghz)
                mt76_init_stream_cap(phy, &phy->sband_2g.sband, false);
-       if (phy->dev->cap.has_5ghz)
+       if (phy->cap.has_5ghz)
                mt76_init_stream_cap(phy, &phy->sband_5g.sband, vht);
 }
 EXPORT_SYMBOL_GPL(mt76_set_stream_caps);
@@ -461,13 +461,13 @@ int mt76_register_device(struct mt76_dev *dev, bool vht,
        dev_set_drvdata(dev->dev, dev);
        mt76_phy_init(dev, hw);
 
-       if (dev->cap.has_2ghz) {
+       if (phy->cap.has_2ghz) {
                ret = mt76_init_sband_2g(dev, rates, n_rates);
                if (ret)
                        return ret;
        }
 
-       if (dev->cap.has_5ghz) {
+       if (phy->cap.has_5ghz) {
                ret = mt76_init_sband_5g(dev, rates + 4, n_rates - 4, vht);
                if (ret)
                        return ret;
index 17392f2..3239a99 100644 (file)
@@ -569,6 +569,7 @@ struct mt76_phy {
        struct mt76_channel_state *chan_state;
        ktime_t survey_time;
 
+       struct mt76_hw_cap cap;
        struct mt76_sband sband_2g;
        struct mt76_sband sband_5g;
 
@@ -638,7 +639,6 @@ struct mt76_dev {
 
        struct debugfs_blob_wrapper eeprom;
        struct debugfs_blob_wrapper otp;
-       struct mt76_hw_cap cap;
 
        struct mt76_rate_power rate_power;
 
index 9d5042a..2cd9722 100644 (file)
@@ -171,7 +171,7 @@ int mt7603_eeprom_init(struct mt7603_dev *dev)
        }
 
        eeprom = (u8 *)dev->mt76.eeprom.data;
-       dev->mt76.cap.has_2ghz = true;
+       dev->mphy.cap.has_2ghz = true;
        memcpy(dev->mt76.macaddr, eeprom + MT_EE_MAC_ADDR, ETH_ALEN);
 
        /* Check for 1SS devices */
index d3033eb..25e3069 100644 (file)
@@ -183,7 +183,7 @@ int mt7615_dma_init(struct mt7615_dev *dev)
        int ret;
 
        /* Increase buffer size to receive large VHT MPDUs */
-       if (dev->mt76.cap.has_5ghz)
+       if (dev->mphy.cap.has_5ghz)
                rx_buf_size *= 2;
 
        mt76_dma_attach(&dev->mt76);
index f4756bb..67f7a1e 100644 (file)
@@ -99,20 +99,20 @@ mt7615_eeprom_parse_hw_band_cap(struct mt7615_dev *dev)
 
        if (is_mt7663(&dev->mt76)) {
                /* dual band */
-               dev->mt76.cap.has_2ghz = true;
-               dev->mt76.cap.has_5ghz = true;
+               dev->mphy.cap.has_2ghz = true;
+               dev->mphy.cap.has_5ghz = true;
                return;
        }
 
        if (is_mt7622(&dev->mt76)) {
                /* 2GHz only */
-               dev->mt76.cap.has_2ghz = true;
+               dev->mphy.cap.has_2ghz = true;
                return;
        }
 
        if (is_mt7611(&dev->mt76)) {
                /* 5GHz only */
-               dev->mt76.cap.has_5ghz = true;
+               dev->mphy.cap.has_5ghz = true;
                return;
        }
 
@@ -120,17 +120,17 @@ mt7615_eeprom_parse_hw_band_cap(struct mt7615_dev *dev)
                        eeprom[MT_EE_WIFI_CONF]);
        switch (val) {
        case MT_EE_5GHZ:
-               dev->mt76.cap.has_5ghz = true;
+               dev->mphy.cap.has_5ghz = true;
                break;
        case MT_EE_2GHZ:
-               dev->mt76.cap.has_2ghz = true;
+               dev->mphy.cap.has_2ghz = true;
                break;
        case MT_EE_DBDC:
                dev->dbdc_support = true;
                /* fall through */
        default:
-               dev->mt76.cap.has_2ghz = true;
-               dev->mt76.cap.has_5ghz = true;
+               dev->mphy.cap.has_2ghz = true;
+               dev->mphy.cap.has_5ghz = true;
                break;
        }
 }
index 9087607..ebf4c96 100644 (file)
@@ -52,15 +52,15 @@ static void mt76x0_set_chip_cap(struct mt76x02_dev *dev)
 
        mt76x02_eeprom_parse_hw_cap(dev);
        dev_dbg(dev->mt76.dev, "2GHz %d 5GHz %d\n",
-               dev->mt76.cap.has_2ghz, dev->mt76.cap.has_5ghz);
+               dev->mphy.cap.has_2ghz, dev->mphy.cap.has_5ghz);
 
        if (dev->no_2ghz) {
-               dev->mt76.cap.has_2ghz = false;
+               dev->mphy.cap.has_2ghz = false;
                dev_dbg(dev->mt76.dev, "mask out 2GHz support\n");
        }
 
        if (is_mt7630(dev)) {
-               dev->mt76.cap.has_5ghz = false;
+               dev->mphy.cap.has_5ghz = false;
                dev_dbg(dev->mt76.dev, "mask out 5GHz support\n");
        }
 
index d78866b..0bac39b 100644 (file)
@@ -245,7 +245,7 @@ int mt76x0_register_device(struct mt76x02_dev *dev)
        if (ret)
                return ret;
 
-       if (dev->mt76.cap.has_5ghz) {
+       if (dev->mphy.cap.has_5ghz) {
                struct ieee80211_supported_band *sband;
 
                sband = &dev->mphy.sband_5g.sband;
@@ -253,7 +253,7 @@ int mt76x0_register_device(struct mt76x02_dev *dev)
                mt76x0_init_txpower(dev, sband);
        }
 
-       if (dev->mt76.cap.has_2ghz)
+       if (dev->mphy.cap.has_2ghz)
                mt76x0_init_txpower(dev, &dev->mphy.sband_2g.sband);
 
        mt76x02_init_debugfs(dev);
index 3de33aa..e91c314 100644 (file)
@@ -447,11 +447,11 @@ static void mt76x0_phy_ant_select(struct mt76x02_dev *dev)
                else
                        coex3 |= BIT(4);
                coex3 |= BIT(3);
-               if (dev->mt76.cap.has_2ghz)
+               if (dev->mphy.cap.has_2ghz)
                        wlan |= BIT(6);
        } else {
                /* sigle antenna mode */
-               if (dev->mt76.cap.has_5ghz) {
+               if (dev->mphy.cap.has_5ghz) {
                        coex3 |= BIT(3) | BIT(4);
                } else {
                        wlan |= BIT(6);
index c54c50f..0acabba 100644 (file)
@@ -75,14 +75,14 @@ void mt76x02_eeprom_parse_hw_cap(struct mt76x02_dev *dev)
 
        switch (FIELD_GET(MT_EE_NIC_CONF_0_BOARD_TYPE, val)) {
        case BOARD_TYPE_5GHZ:
-               dev->mt76.cap.has_5ghz = true;
+               dev->mphy.cap.has_5ghz = true;
                break;
        case BOARD_TYPE_2GHZ:
-               dev->mt76.cap.has_2ghz = true;
+               dev->mphy.cap.has_2ghz = true;
                break;
        default:
-               dev->mt76.cap.has_2ghz = true;
-               dev->mt76.cap.has_5ghz = true;
+               dev->mphy.cap.has_2ghz = true;
+               dev->mphy.cap.has_5ghz = true;
                break;
        }
 }
index 35954a4..d65910c 100644 (file)
@@ -52,14 +52,14 @@ static void mt7915_eeprom_parse_hw_cap(struct mt7915_dev *dev)
        val = FIELD_GET(MT_EE_WIFI_CONF_BAND_SEL, val);
        switch (val) {
        case MT_EE_5GHZ:
-               dev->mt76.cap.has_5ghz = true;
+               dev->mphy.cap.has_5ghz = true;
                break;
        case MT_EE_2GHZ:
-               dev->mt76.cap.has_2ghz = true;
+               dev->mphy.cap.has_2ghz = true;
                break;
        default:
-               dev->mt76.cap.has_2ghz = true;
-               dev->mt76.cap.has_5ghz = true;
+               dev->mphy.cap.has_2ghz = true;
+               dev->mphy.cap.has_5ghz = true;
                break;
        }
 
index fe369f8..53eec43 100644 (file)
@@ -521,10 +521,9 @@ void mt7915_set_stream_he_caps(struct mt7915_phy *phy)
 {
        struct ieee80211_sband_iftype_data *data;
        struct ieee80211_supported_band *band;
-       struct mt76_dev *mdev = &phy->dev->mt76;
        int n;
 
-       if (mdev->cap.has_2ghz) {
+       if (phy->mt76->cap.has_2ghz) {
                data = phy->iftype[NL80211_BAND_2GHZ];
                n = mt7915_init_he_caps(phy, NL80211_BAND_2GHZ, data);
 
@@ -533,7 +532,7 @@ void mt7915_set_stream_he_caps(struct mt7915_phy *phy)
                band->n_iftype_data = n;
        }
 
-       if (mdev->cap.has_5ghz) {
+       if (phy->mt76->cap.has_5ghz) {
                data = phy->iftype[NL80211_BAND_5GHZ];
                n = mt7915_init_he_caps(phy, NL80211_BAND_5GHZ, data);