From 47c0c3360a84cb4f8d5500ef1190a1eea394e2e8 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 3011/3013] wifi: mt76: mt7915: get tx retries from tx free
 done event for sw path

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

diff --git a/mt7915/mac.c b/mt7915/mac.c
index 175498b1..180c1ae3 100644
--- a/mt7915/mac.c
+++ b/mt7915/mac.c
@@ -1005,6 +1005,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;
@@ -1019,7 +1020,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))
@@ -1032,7 +1033,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;
 			u16 idx;
 
 			idx = FIELD_GET(MT_TX_FREE_WLAN_ID, info);
@@ -1049,7 +1049,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 6fa9c79f..afadc512 100644
--- a/mt7915/mac.h
+++ b/mt7915/mac.h
@@ -36,8 +36,11 @@ enum rx_pkt_type {
 #define MT_TX_FREE_LATENCY		GENMASK(12, 0)
 /* 0: success, others: dropped */
 #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)
-#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)
 
 /* will support this field in further revision */
diff --git a/mt7915/main.c b/mt7915/main.c
index 94b1ca61..a4d1b816 100644
--- a/mt7915/main.c
+++ b/mt7915/main.c
@@ -1101,9 +1101,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);
@@ -1113,6 +1110,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

