mt76: connac: introduce is_connac_v1 utility routine
authorLorenzo Bianconi <lorenzo@kernel.org>
Fri, 24 Dec 2021 10:58:02 +0000 (11:58 +0100)
committerFelix Fietkau <nbd@nbd.name>
Thu, 3 Feb 2022 12:57:58 +0000 (13:57 +0100)
Introduce is_connac_v1 inline utility routine to check if the device is
generation v1.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h
drivers/net/wireless/mediatek/mt76/mt76_connac.h
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h

index 6ff6d580091882ce74e8de8d378dc391eff2d9b9..07b833654920e958e4e31830f1844cc25042f4c9 100644 (file)
@@ -409,24 +409,6 @@ int mt7615_mcu_rdd_cmd(struct mt7615_dev *dev,
 int mt7615_mcu_rdd_send_pattern(struct mt7615_dev *dev);
 int mt7615_mcu_fw_log_2_host(struct mt7615_dev *dev, u8 ctrl);
 
-static inline bool is_mt7622(struct mt76_dev *dev)
-{
-       if (!IS_ENABLED(CONFIG_MT7622_WMAC))
-               return false;
-
-       return mt76_chip(dev) == 0x7622;
-}
-
-static inline bool is_mt7615(struct mt76_dev *dev)
-{
-       return mt76_chip(dev) == 0x7615 || mt76_chip(dev) == 0x7611;
-}
-
-static inline bool is_mt7611(struct mt76_dev *dev)
-{
-       return mt76_chip(dev) == 0x7611;
-}
-
 static inline void mt7615_irq_enable(struct mt7615_dev *dev, u32 mask)
 {
        mt76_set_irq_mask(&dev->mt76, 0, 0, mask);
index 8701f04a28e34dc092738aead14b658454d0cb89..426adbb56a2dca19a75914333037e2230970b099 100644 (file)
@@ -115,6 +115,29 @@ static inline bool is_mt7916(struct mt76_dev *dev)
        return mt76_chip(dev) == 0x7906;
 }
 
+static inline bool is_mt7622(struct mt76_dev *dev)
+{
+       if (!IS_ENABLED(CONFIG_MT7622_WMAC))
+               return false;
+
+       return mt76_chip(dev) == 0x7622;
+}
+
+static inline bool is_mt7615(struct mt76_dev *dev)
+{
+       return mt76_chip(dev) == 0x7615 || mt76_chip(dev) == 0x7611;
+}
+
+static inline bool is_mt7611(struct mt76_dev *dev)
+{
+       return mt76_chip(dev) == 0x7611;
+}
+
+static inline bool is_connac_v1(struct mt76_dev *dev)
+{
+       return is_mt7615(dev) || is_mt7663(dev) || is_mt7622(dev);
+}
+
 static inline u8 mt76_connac_chan_bw(struct cfg80211_chan_def *chandef)
 {
        static const u8 width_to_bw[] = {
index 33ea014860359a4e4a4403e59210d28e7455ee2e..142017457f72c982167435e226e4ec05e75b9978 100644 (file)
@@ -553,8 +553,7 @@ void mt76_connac_mcu_wtbl_generic_tlv(struct mt76_dev *dev,
                generic->muar_idx = mvif->omac_idx;
                generic->qos = sta->wme;
        } else {
-               if ((is_mt7921(dev) || is_mt7915(dev)) &&
-                   vif->type == NL80211_IFTYPE_STATION)
+               if (!is_connac_v1(dev) && vif->type == NL80211_IFTYPE_STATION)
                        memcpy(generic->peer_addr, vif->bss_conf.bssid,
                               ETH_ALEN);
                else
@@ -571,7 +570,7 @@ void mt76_connac_mcu_wtbl_generic_tlv(struct mt76_dev *dev,
        rx->rca2 = 1;
        rx->rv = 1;
 
-       if (is_mt7921(dev) || is_mt7915(dev))
+       if (!is_connac_v1(dev))
                return;
 
        tlv = mt76_connac_mcu_add_nested_tlv(skb, WTBL_SPE, sizeof(*spe),
@@ -937,7 +936,7 @@ void mt76_connac_mcu_wtbl_ht_tlv(struct mt76_dev *dev, struct sk_buff *skb,
 
        mt76_connac_mcu_wtbl_smps_tlv(skb, sta, sta_wtbl, wtbl_tlv);
 
-       if (!is_mt7921(dev) && !is_mt7915(dev) && sta->ht_cap.ht_supported) {
+       if (is_connac_v1(dev) && sta->ht_cap.ht_supported) {
                /* sgi */
                u32 msk = MT_WTBL_W5_SHORT_GI_20 | MT_WTBL_W5_SHORT_GI_40 |
                          MT_WTBL_W5_SHORT_GI_80 | MT_WTBL_W5_SHORT_GI_160;
@@ -1039,7 +1038,7 @@ void mt76_connac_mcu_wtbl_ba_tlv(struct mt76_dev *dev, struct sk_buff *skb,
                ba->rst_ba_sb = 1;
        }
 
-       if (is_mt7921(dev) || is_mt7915(dev)) {
+       if (!is_connac_v1(dev)) {
                ba->ba_winsize = enable ? cpu_to_le16(params->buf_size) : 0;
                return;
        }
@@ -1218,7 +1217,7 @@ u8 mt76_connac_get_phy_mode(struct mt76_phy *phy, struct ieee80211_vif *vif,
        struct ieee80211_sta_ht_cap *ht_cap;
        u8 mode = 0;
 
-       if (!is_mt7921(dev) && !is_mt7915(dev))
+       if (is_connac_v1(dev))
                return 0x38;
 
        if (sta) {
index 2c41d81c230ef8ef2a21b011d5d8554dbd8a68e0..0908d30552d47cb017dec447ed44c66535e99da0 100644 (file)
@@ -1464,7 +1464,7 @@ mt76_connac_mcu_get_wlan_idx(struct mt76_dev *dev, struct mt76_wcid *wcid,
 {
        *wlan_idx_hi = 0;
 
-       if (is_mt7921(dev) || is_mt7915(dev) || is_mt7916(dev)) {
+       if (!is_connac_v1(dev)) {
                *wlan_idx_lo = wcid ? to_wcid_lo(wcid->idx) : 0;
                *wlan_idx_hi = wcid ? to_wcid_hi(wcid->idx) : 0;
        } else {