From 301353df129dc70115481141357c590b4362a5c8 Mon Sep 17 00:00:00 2001
From: Yi-Chia Hsieh <Yi-Chia.Hsieh@mediatek.com>
Date: Fri, 5 Aug 2022 13:58:11 -0700
Subject: [PATCH 3006/3010] mt76: mt7915: add statistic for H/W Rx Path

Change-Id: Id94d663f08e91c83d296bd57e5e9b65a505ae1c7
Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
---
 mt76.h          |  4 ++++
 mt7915/mac.c    | 25 +++++++++++++++++++++++++
 mt7915/main.c   |  9 ++++++++-
 mt7915/mmio.c   | 17 +++++++++++++++++
 mt7915/mt7915.h |  2 ++
 5 files changed, 56 insertions(+), 1 deletion(-)

diff --git a/mt76.h b/mt76.h
index 13bdc08..14c58bc 100644
--- a/mt76.h
+++ b/mt76.h
@@ -278,6 +278,10 @@ struct mt76_sta_stats {
 	u32 tx_packets;
 	u32 tx_retries;
 	u32 tx_failed;
+	u64 rx_bytes;
+	u32 rx_packets;
+	u32 rx_error;
+	u32 rx_drop;
 };
 
 enum mt76_wcid_flags {
diff --git a/mt7915/mac.c b/mt7915/mac.c
index e78f30f..7fb161d 100644
--- a/mt7915/mac.c
+++ b/mt7915/mac.c
@@ -942,6 +942,31 @@ void mt7915_wed_trigger_ser(struct mtk_wed_device *wed)
 	return;
 }
 
+void mt7915_wed_update_wo_rxcnt(struct mtk_wed_device *wed,
+				    struct wo_cmd_rxcnt_t *rxcnt)
+{
+	struct mt7915_dev *dev;
+	struct mt76_wcid *wcid;
+
+	dev = container_of(wed, struct mt7915_dev, mt76.mmio.wed);
+	if (rxcnt->wlan_idx >= mt7915_wtbl_size(dev))
+		return;
+
+	rcu_read_lock();
+
+	wcid = rcu_dereference(dev->mt76.wcid[rxcnt->wlan_idx]);
+	if (!wcid)
+		goto out;
+
+	wcid->stats.rx_bytes += rxcnt->rx_byte_cnt;
+	wcid->stats.rx_packets += rxcnt->rx_pkt_cnt;
+	wcid->stats.rx_error += rxcnt->rx_err_cnt;
+	wcid->stats.rx_drop += rxcnt->rx_drop_cnt;
+
+out:
+	rcu_read_unlock();
+}
+
 static void
 mt7915_tx_check_aggr(struct ieee80211_sta *sta, __le32 *txwi)
 {
diff --git a/mt7915/main.c b/mt7915/main.c
index 5e37c4c..01d64b2 100644
--- a/mt7915/main.c
+++ b/mt7915/main.c
@@ -1050,7 +1050,8 @@ static void mt7915_sta_statistics(struct ieee80211_hw *hw,
 	struct rate_info *txrate = &msta->wcid.rate;
 	struct rate_info rxrate = {};
 
-	if (is_mt7915(&phy->dev->mt76) &&
+	if ((is_mt7915(&phy->dev->mt76) ||
+	    mtk_wed_device_active(&phy->dev->mt76.mmio.wed)) &&
 	    !mt7915_mcu_get_rx_rate(phy, vif, sta, &rxrate)) {
 		sinfo->rxrate = rxrate;
 		sinfo->filled |= BIT_ULL(NL80211_STA_INFO_RX_BITRATE);
@@ -1087,6 +1088,12 @@ 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);
+
+		sinfo->rx_bytes = msta->wcid.stats.rx_bytes;
+		sinfo->filled |= BIT_ULL(NL80211_STA_INFO_RX_BYTES64);
+
+		sinfo->rx_packets = msta->wcid.stats.rx_packets;
+		sinfo->filled |= BIT_ULL(NL80211_STA_INFO_RX_PACKETS);
 	}
 }
 
diff --git a/mt7915/mmio.c b/mt7915/mmio.c
index 6a1877d..cd8326b 100644
--- a/mt7915/mmio.c
+++ b/mt7915/mmio.c
@@ -9,6 +9,7 @@
 #include "mt7915.h"
 #include "mac.h"
 #include "../trace.h"
+#include "../mt76_connac_mcu.h"
 
 static bool wed_enable = true;
 module_param(wed_enable, bool, 0644);
@@ -618,6 +619,8 @@ int mt7915_mmio_wed_init(struct mt7915_dev *dev, void *pdev_ptr,
 
 	wed->wlan.ser_trigger = mt7915_wed_trigger_ser;
 
+	wed->wlan.update_wo_rxcnt = mt7915_wed_update_wo_rxcnt;
+
 	dev->mt76.rx_token_size = wed->wlan.rx_pkt;
 	if (mtk_wed_device_attach(wed))
 		return 0;
@@ -630,6 +633,20 @@ int mt7915_mmio_wed_init(struct mt7915_dev *dev, void *pdev_ptr,
 	if (ret)
 		return ret;
 
+	if (wed->ver != 1) {
+		struct {
+		__le32 args[2];
+		} req = {
+			.args = {
+				cpu_to_le32(1),
+				cpu_to_le32(6),
+			},
+		};
+
+		mtk_wed_device_update_msg(wed, WED_WO_RXCNT_CTRL,
+					  (void *)&req, sizeof(req));
+	}
+
 	return 1;
 #else
 	return 0;
diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
index 412f4f4..9977162 100644
--- a/mt7915/mt7915.h
+++ b/mt7915/mt7915.h
@@ -549,6 +549,8 @@ u32 mt7915_wed_init_rx_buf(struct mtk_wed_device *wed,
 				int pkt_num);
 void mt7915_wed_release_rx_buf(struct mtk_wed_device *wed);
 void mt7915_wed_trigger_ser(struct mtk_wed_device *wed);
+void mt7915_wed_update_wo_rxcnt(struct mtk_wed_device *wed,
+				struct wo_cmd_rxcnt_t *rxcnt);
 int mt7915_register_device(struct mt7915_dev *dev);
 void mt7915_unregister_device(struct mt7915_dev *dev);
 void mt7915_eeprom_rebonding(struct mt7915_dev *dev);
-- 
2.18.0

