mt76: mt7915: rely on mt76_connac_mcu_sta_uapsd
authorLorenzo Bianconi <lorenzo@kernel.org>
Thu, 23 Dec 2021 12:07:38 +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_uapsd 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/mt76_connac_mcu.c
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c

index b25f4ab..bf2f1ff 100644 (file)
@@ -418,9 +418,8 @@ void mt76_connac_mcu_sta_basic_tlv(struct sk_buff *skb,
 }
 EXPORT_SYMBOL_GPL(mt76_connac_mcu_sta_basic_tlv);
 
-static void
-mt76_connac_mcu_sta_uapsd(struct sk_buff *skb, struct ieee80211_vif *vif,
-                         struct ieee80211_sta *sta)
+void mt76_connac_mcu_sta_uapsd(struct sk_buff *skb, struct ieee80211_vif *vif,
+                              struct ieee80211_sta *sta)
 {
        struct sta_rec_uapsd *uapsd;
        struct tlv *tlv;
@@ -449,6 +448,7 @@ mt76_connac_mcu_sta_uapsd(struct sk_buff *skb, struct ieee80211_vif *vif,
        }
        uapsd->max_sp = sta->max_sp;
 }
+EXPORT_SYMBOL_GPL(mt76_connac_mcu_sta_uapsd);
 
 void mt76_connac_mcu_wtbl_hdr_trans_tlv(struct sk_buff *skb,
                                        struct ieee80211_vif *vif,
index f3c809a..8d1be17 100644 (file)
@@ -1601,4 +1601,6 @@ int mt76_connac_mcu_bss_basic_tlv(struct sk_buff *skb,
                                  struct ieee80211_sta *sta,
                                  struct mt76_phy *phy, u8 wlan_idx,
                                  bool enable);
+void mt76_connac_mcu_sta_uapsd(struct sk_buff *skb, struct ieee80211_vif *vif,
+                              struct ieee80211_sta *sta);
 #endif /* __MT76_CONNAC_MCU_H */
index fc16021..dcaff00 100644 (file)
@@ -913,38 +913,6 @@ mt7915_mcu_sta_he_tlv(struct sk_buff *skb, struct ieee80211_sta *sta,
 }
 
 static void
-mt7915_mcu_sta_uapsd_tlv(struct sk_buff *skb, struct ieee80211_sta *sta,
-                    struct ieee80211_vif *vif)
-{
-       struct sta_rec_uapsd *uapsd;
-       struct tlv *tlv;
-
-       if (vif->type != NL80211_IFTYPE_AP || !sta->wme)
-               return;
-
-       tlv = mt76_connac_mcu_add_tlv(skb, STA_REC_APPS, sizeof(*uapsd));
-       uapsd = (struct sta_rec_uapsd *)tlv;
-
-       if (sta->uapsd_queues & IEEE80211_WMM_IE_STA_QOSINFO_AC_VO) {
-               uapsd->dac_map |= BIT(3);
-               uapsd->tac_map |= BIT(3);
-       }
-       if (sta->uapsd_queues & IEEE80211_WMM_IE_STA_QOSINFO_AC_VI) {
-               uapsd->dac_map |= BIT(2);
-               uapsd->tac_map |= BIT(2);
-       }
-       if (sta->uapsd_queues & IEEE80211_WMM_IE_STA_QOSINFO_AC_BE) {
-               uapsd->dac_map |= BIT(1);
-               uapsd->tac_map |= BIT(1);
-       }
-       if (sta->uapsd_queues & IEEE80211_WMM_IE_STA_QOSINFO_AC_BK) {
-               uapsd->dac_map |= BIT(0);
-               uapsd->tac_map |= BIT(0);
-       }
-       uapsd->max_sp = sta->max_sp;
-}
-
-static void
 mt7915_mcu_sta_muru_tlv(struct sk_buff *skb, struct ieee80211_sta *sta,
                        struct ieee80211_vif *vif)
 {
@@ -1829,7 +1797,7 @@ int mt7915_mcu_add_sta(struct mt7915_dev *dev, struct ieee80211_vif *vif,
                /* starec vht */
                mt7915_mcu_sta_vht_tlv(skb, sta);
                /* starec uapsd */
-               mt7915_mcu_sta_uapsd_tlv(skb, sta, vif);
+               mt76_connac_mcu_sta_uapsd(skb, vif, sta);
        }
 
        ret = mt7915_mcu_sta_wtbl_tlv(dev, skb, vif, sta);