mt76: mt7915: rely on mt76_connac_mcu_sta_ba
authorLorenzo Bianconi <lorenzo@kernel.org>
Thu, 23 Dec 2021 12:07:35 +0000 (13:07 +0100)
committerFelix Fietkau <nbd@nbd.name>
Thu, 3 Feb 2022 12:57:57 +0000 (13:57 +0100)
Rely on mt76_connac_mcu_sta_ba routine in mt7915 and remove duplicated
code.

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

index 3bec99f0800922e70ec4d8b45999301ce17b7864..45c16f5f39a97bad313414566957581795bda30e 100644 (file)
@@ -1191,7 +1191,8 @@ mt7615_mcu_uni_tx_ba(struct mt7615_dev *dev,
        struct mt7615_sta *sta = (struct mt7615_sta *)params->sta->drv_priv;
 
        return mt76_connac_mcu_sta_ba(&dev->mt76, &sta->vif->mt76, params,
-                                     enable, true);
+                                     MCU_UNI_CMD(STA_REC_UPDATE), enable,
+                                     true);
 }
 
 static int
index 1b56c2956d292ca124c0bf45c7f77e70569108f7..14bfbbb3114ee8608e90ed5b90dff66035b3b4ca 100644 (file)
@@ -1148,7 +1148,7 @@ EXPORT_SYMBOL_GPL(mt76_connac_mcu_sta_ba_tlv);
 
 int mt76_connac_mcu_sta_ba(struct mt76_dev *dev, struct mt76_vif *mvif,
                           struct ieee80211_ampdu_params *params,
-                          bool enable, bool tx)
+                          int cmd, bool enable, bool tx)
 {
        struct mt76_wcid *wcid = (struct mt76_wcid *)params->sta->drv_priv;
        struct wtbl_req_hdr *wtbl_hdr;
@@ -1171,8 +1171,7 @@ int mt76_connac_mcu_sta_ba(struct mt76_dev *dev, struct mt76_vif *mvif,
        mt76_connac_mcu_wtbl_ba_tlv(dev, skb, params, enable, tx, sta_wtbl,
                                    wtbl_hdr);
 
-       ret = mt76_mcu_skb_send_msg(dev, skb,
-                                   MCU_UNI_CMD(STA_REC_UPDATE), true);
+       ret = mt76_mcu_skb_send_msg(dev, skb, cmd, true);
        if (ret)
                return ret;
 
@@ -1182,8 +1181,7 @@ int mt76_connac_mcu_sta_ba(struct mt76_dev *dev, struct mt76_vif *mvif,
 
        mt76_connac_mcu_sta_ba_tlv(skb, params, enable, tx);
 
-       return mt76_mcu_skb_send_msg(dev, skb,
-                                    MCU_UNI_CMD(STA_REC_UPDATE), true);
+       return mt76_mcu_skb_send_msg(dev, skb, cmd, true);
 }
 EXPORT_SYMBOL_GPL(mt76_connac_mcu_sta_ba);
 
index ccae578922f6d2d42b43519e6a222bf9c378c59b..f3c809a3ddb908979c1b84bd7e44a392e51d99d3 100644 (file)
@@ -1532,7 +1532,7 @@ int mt76_connac_mcu_uni_add_dev(struct mt76_phy *phy,
                                bool enable);
 int mt76_connac_mcu_sta_ba(struct mt76_dev *dev, struct mt76_vif *mvif,
                           struct ieee80211_ampdu_params *params,
-                          bool enable, bool tx);
+                          int cmd, bool enable, bool tx);
 int mt76_connac_mcu_uni_add_bss(struct mt76_phy *phy,
                                struct ieee80211_vif *vif,
                                struct mt76_wcid *wcid,
index f56fc4c82fe68196e02320b202553aa3dbd1f5a6..ef81b3ff48f9436ac86376483a284f2d74cb0d71 100644 (file)
@@ -742,63 +742,31 @@ out:
 }
 
 /** starec & wtbl **/
-static int
-mt7915_mcu_sta_ba(struct mt7915_dev *dev,
-                 struct ieee80211_ampdu_params *params,
-                 bool enable, bool tx)
+int mt7915_mcu_add_tx_ba(struct mt7915_dev *dev,
+                        struct ieee80211_ampdu_params *params,
+                        bool enable)
 {
        struct mt7915_sta *msta = (struct mt7915_sta *)params->sta->drv_priv;
        struct mt7915_vif *mvif = msta->vif;
-       struct wtbl_req_hdr *wtbl_hdr;
-       struct tlv *sta_wtbl;
-       struct sk_buff *skb;
-       int ret;
 
-       if (enable && tx && !params->amsdu)
+       if (enable && !params->amsdu)
                msta->wcid.amsdu = false;
 
-       skb = mt76_connac_mcu_alloc_sta_req(&dev->mt76, &mvif->mt76,
-                                           &msta->wcid);
-       if (IS_ERR(skb))
-               return PTR_ERR(skb);
-
-       sta_wtbl = mt76_connac_mcu_add_tlv(skb, STA_REC_WTBL,
-                                          sizeof(struct tlv));
-       wtbl_hdr = mt76_connac_mcu_alloc_wtbl_req(&dev->mt76, &msta->wcid,
-                                                 WTBL_SET, sta_wtbl, &skb);
-       if (IS_ERR(wtbl_hdr))
-               return PTR_ERR(wtbl_hdr);
-
-       mt76_connac_mcu_wtbl_ba_tlv(&dev->mt76, skb, params, enable, tx,
-                                   sta_wtbl, wtbl_hdr);
-       ret = mt76_mcu_skb_send_msg(&dev->mt76, skb,
-                                   MCU_EXT_CMD(STA_REC_UPDATE), true);
-       if (ret)
-               return ret;
-
-       skb = mt76_connac_mcu_alloc_sta_req(&dev->mt76, &mvif->mt76,
-                                           &msta->wcid);
-       if (IS_ERR(skb))
-               return PTR_ERR(skb);
-
-       mt76_connac_mcu_sta_ba_tlv(skb, params, enable, tx);
-
-       return mt76_mcu_skb_send_msg(&dev->mt76, skb,
-                                    MCU_EXT_CMD(STA_REC_UPDATE), true);
-}
-
-int mt7915_mcu_add_tx_ba(struct mt7915_dev *dev,
-                        struct ieee80211_ampdu_params *params,
-                        bool enable)
-{
-       return mt7915_mcu_sta_ba(dev, params, enable, true);
+       return mt76_connac_mcu_sta_ba(&dev->mt76, &mvif->mt76, params,
+                                     MCU_EXT_CMD(STA_REC_UPDATE),
+                                     enable, true);
 }
 
 int mt7915_mcu_add_rx_ba(struct mt7915_dev *dev,
                         struct ieee80211_ampdu_params *params,
                         bool enable)
 {
-       return mt7915_mcu_sta_ba(dev, params, enable, false);
+       struct mt7915_sta *msta = (struct mt7915_sta *)params->sta->drv_priv;
+       struct mt7915_vif *mvif = msta->vif;
+
+       return mt76_connac_mcu_sta_ba(&dev->mt76, &mvif->mt76, params,
+                                     MCU_EXT_CMD(STA_REC_UPDATE),
+                                     enable, false);
 }
 
 static void
index d014e574ce6a67e6ffe773ffd4219eb2c82d192a..b0022713c4698763cb71eef79093dcad605432f0 100644 (file)
@@ -429,6 +429,7 @@ int mt7921_mcu_uni_tx_ba(struct mt7921_dev *dev,
                msta->wcid.amsdu = false;
 
        return mt76_connac_mcu_sta_ba(&dev->mt76, &msta->vif->mt76, params,
+                                     MCU_UNI_CMD(STA_REC_UPDATE),
                                      enable, true);
 }
 
@@ -439,6 +440,7 @@ int mt7921_mcu_uni_rx_ba(struct mt7921_dev *dev,
        struct mt7921_sta *msta = (struct mt7921_sta *)params->sta->drv_priv;
 
        return mt76_connac_mcu_sta_ba(&dev->mt76, &msta->vif->mt76, params,
+                                     MCU_UNI_CMD(STA_REC_UPDATE),
                                      enable, false);
 }