From 7fad725b238b5b94403b9c4457aa0c3c0acdd576 Mon Sep 17 00:00:00 2001
From: Peter Chiu <chui-hao.chiu@mediatek.com>
Date: Tue, 17 Jan 2023 21:15:00 +0800
Subject: [PATCH 3009/3012] wifi: mt76: mt7915: get tx retries from tx free
 done event for sw path

---
 mt76_connac2_mac.h |  2 ++
 mt7915/mac.c       | 14 +++++++++++---
 mt7915/mac.h       |  3 ++-
 mt7915/main.c      |  6 +++---
 4 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/mt76_connac2_mac.h b/mt76_connac2_mac.h
index e7a4019..e6170ea 100644
--- a/mt76_connac2_mac.h
+++ b/mt76_connac2_mac.h
@@ -38,6 +38,8 @@ enum {
 /* 0: success, others: dropped */
 #define MT_TX_FREE_STATUS		GENMASK(14, 13)
 #define MT_TX_FREE_MSDU_ID		GENMASK(30, 16)
+#define MT_TX_FREE_TX_COUNT		GENMASK(12, 0)
+#define MT_TX_FREE_TX_COUNT_V3		GENMASK(27, 24)
 #define MT_TX_FREE_PAIR			BIT(31)
 /* will support this field in further revision */
 #define MT_TX_FREE_RATE			GENMASK(13, 0)
diff --git a/mt7915/mac.c b/mt7915/mac.c
index 26b5e15..0994ce1 100644
--- a/mt7915/mac.c
+++ b/mt7915/mac.c
@@ -981,6 +981,7 @@ mt7915_mac_tx_free(struct mt7915_dev *dev, void *data, int len)
 	struct mt76_dev *mdev = &dev->mt76;
 	struct mt76_txwi_cache *txwi;
 	struct ieee80211_sta *sta = NULL;
+	struct mt76_wcid *wcid = NULL;
 	LIST_HEAD(free_list);
 	void *end = data + len;
 	bool v3, wake = false;
@@ -995,7 +996,7 @@ mt7915_mac_tx_free(struct mt7915_dev *dev, void *data, int len)
 	v3 = (FIELD_GET(MT_TX_FREE_VER, txd) == 0x4);
 
 	for (cur_info = tx_info; count < total; cur_info++) {
-		u32 msdu, info;
+		u32 msdu, info, retries = 0;
 		u8 i;
 
 		if (WARN_ON_ONCE((void *)cur_info >= end))
@@ -1008,7 +1009,6 @@ mt7915_mac_tx_free(struct mt7915_dev *dev, void *data, int len)
 		info = le32_to_cpu(*cur_info);
 		if (info & MT_TX_FREE_PAIR) {
 			struct mt7915_sta *msta;
-			struct mt76_wcid *wcid = NULL;
 			struct mt7915_phy *phy;
 			u16 idx;
 
@@ -1033,7 +1033,15 @@ mt7915_mac_tx_free(struct mt7915_dev *dev, void *data, int len)
 			continue;
 		}
 
-		if (v3 && (info & MT_TX_FREE_MPDU_HEADER))
+		if (v3 && (info & MT_TX_FREE_MPDU_HEADER_V3))
+			retries = u32_get_bits(info, MT_TX_FREE_TX_COUNT_V3) - 1;
+		else if (!v3 && (info & MT_TX_FREE_MPDU_HEADER))
+			retries = u32_get_bits(info, MT_TX_FREE_TX_COUNT) - 1;
+
+		if (!mtk_wed_device_active(&mdev->mmio.wed) && wcid)
+			wcid->stats.tx_retries += retries;
+
+		if (v3 && (info & MT_TX_FREE_MPDU_HEADER_V3))
 			continue;
 
 		for (i = 0; i < 1 + v3; i++) {
diff --git a/mt7915/mac.h b/mt7915/mac.h
index ce94f87..859298d 100644
--- a/mt7915/mac.h
+++ b/mt7915/mac.h
@@ -9,7 +9,8 @@
 #define MT_TX_FREE_VER			GENMASK(18, 16)
 #define MT_TX_FREE_MSDU_CNT_V0		GENMASK(6, 0)
 /* 0: success, others: dropped */
-#define MT_TX_FREE_MPDU_HEADER		BIT(30)
+#define MT_TX_FREE_MPDU_HEADER		BIT(15)
+#define MT_TX_FREE_MPDU_HEADER_V3	BIT(30)
 #define MT_TX_FREE_MSDU_ID_V3		GENMASK(14, 0)
 
 #define MT_TXS5_F0_FINAL_MPDU		BIT(31)
diff --git a/mt7915/main.c b/mt7915/main.c
index c377ef2..f836aa8 100644
--- a/mt7915/main.c
+++ b/mt7915/main.c
@@ -1116,9 +1116,6 @@ static void mt7915_sta_statistics(struct ieee80211_hw *hw,
 		sinfo->tx_bytes = msta->wcid.stats.tx_bytes;
 		sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_BYTES64);
 
-		sinfo->tx_retries = msta->wcid.stats.tx_retries;
-		sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_RETRIES);
-
 		if (mtk_wed_get_rx_capa(&phy->dev->mt76.mmio.wed)) {
 			sinfo->rx_bytes = msta->wcid.stats.rx_bytes;
 			sinfo->filled |= BIT_ULL(NL80211_STA_INFO_RX_BYTES64);
@@ -1128,6 +1125,9 @@ static void mt7915_sta_statistics(struct ieee80211_hw *hw,
 		}
 	}
 
+	sinfo->tx_retries = msta->wcid.stats.tx_retries;
+	sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_RETRIES);
+
 	if (!mt7915_mcu_get_tx_stat_wa(phy->dev, msta->wcid.idx)) {
 		sinfo->tx_packets = msta->wcid.stats.tx_packets;
 		sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_PACKETS);
-- 
2.18.0

