From 3a8ffe4b10bd9949dcd689406d5378a1b93c201d Mon Sep 17 00:00:00 2001
From: Howard Hsu <howard-yh.hsu@mediatek.com>
Date: Thu, 15 Feb 2024 11:16:16 +0800
Subject: [PATCH 1046/1053] wifi: mt76: mt7915: support spatial reuse debug
 commands

Support 3 spatial reuse debug commands:
1. sr_enable: enable/disable spatial reuse
2. sr_scene_cond: check spatial resue scene detection algorithm result
3. sr_stats: check spatial resue tx statistics

Signed-off-by: Howard Hsu <howard-yh.hsu@mediatek.com>
---
 mt76_connac_mcu.h    |  1 +
 mt7915/mcu.c         | 95 ++++++++++++++++++++++++++++++++++++++++++++
 mt7915/mcu.h         | 48 ++++++++++++++++++++++
 mt7915/mt7915.h      |  3 ++
 mt7915/mtk_debugfs.c | 48 ++++++++++++++++++++--
 5 files changed, 191 insertions(+), 4 deletions(-)

diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
index c96621f..dc60e35 100644
--- a/mt76_connac_mcu.h
+++ b/mt76_connac_mcu.h
@@ -1031,6 +1031,7 @@ enum {
 	MCU_EXT_EVENT_WA_TX_STAT = 0x74,
 	MCU_EXT_EVENT_BCC_NOTIFY = 0x75,
 	MCU_EXT_EVENT_MURU_CTRL = 0x9f,
+	MCU_EXT_EVENT_SR = 0xa8,
 	MCU_EXT_EVENT_CSI_REPORT = 0xc2,
 };
 
diff --git a/mt7915/mcu.c b/mt7915/mcu.c
index ddb738c..b3faf77 100644
--- a/mt7915/mcu.c
+++ b/mt7915/mcu.c
@@ -452,6 +452,91 @@ mt7915_mcu_rx_bss_acq_pkt_cnt(struct mt7915_dev *dev, struct sk_buff * skb)
 	}
 }
 
+#ifdef MTK_DEBUG
+void mt7915_mcu_rx_sr_swsd(struct mt7915_dev *dev, struct sk_buff *skb)
+{
+#define SR_SCENE_DETECTION_TIMER_PERIOD_MS 500
+	struct mt7915_mcu_sr_swsd_event *event;
+	static const char * const rules[] = {"NO CONNECTED", "NO CONGESTION",
+					     "NO INTERFERENCE", "MESH ILLEGAL APCLI",
+					     "SR ON"};
+	u8 idx;
+
+	event = (struct mt7915_mcu_sr_swsd_event *)skb->data;
+	idx = event->basic.band_idx;
+
+	dev_info(dev->mt76.dev, "Band index = %u\n", event->basic.band_idx);
+	dev_info(dev->mt76.dev, "Hit Rule = %s\n", rules[event->rule[idx]]);
+	dev_info(dev->mt76.dev, "Timer Period = %d(us)\n"
+		 "Congestion Ratio  = %d.%1d%%\n",
+		 SR_SCENE_DETECTION_TIMER_PERIOD_MS * 1000,
+		 le32_to_cpu(event->total_airtime_ratio[idx]) / 10,
+		 le32_to_cpu(event->total_airtime_ratio[idx]) % 10);
+	dev_info(dev->mt76.dev,
+		 "Total Airtime = %d(us)\n"
+		 "ChBusy = %d\n"
+		 "SrTx = %d\n"
+		 "OBSS = %d\n"
+		 "MyTx = %d\n"
+		 "MyRx = %d\n"
+		 "Interference Ratio = %d.%1d%%\n",
+		 le32_to_cpu(event->total_airtime[idx]),
+		 le32_to_cpu(event->channel_busy_time[idx]),
+		 le32_to_cpu(event->sr_tx_airtime[idx]),
+		 le32_to_cpu(event->obss_airtime[idx]),
+		 le32_to_cpu(event->my_tx_airtime[idx]),
+		 le32_to_cpu(event->my_rx_airtime[idx]),
+		 le32_to_cpu(event->obss_airtime_ratio[idx]) / 10,
+		 le32_to_cpu(event->obss_airtime_ratio[idx]) % 10);
+}
+
+void mt7915_mcu_rx_sr_hw_indicator(struct mt7915_dev *dev, struct sk_buff *skb)
+{
+	struct mt7915_mcu_sr_hw_ind_event *event;
+
+	event = (struct mt7915_mcu_sr_hw_ind_event *)skb->data;
+
+	dev_info(dev->mt76.dev, "Inter PPDU Count = %u\n",
+		 le16_to_cpu(event->inter_bss_ppdu_cnt));
+	dev_info(dev->mt76.dev, "SR Valid Count = %u\n",
+		 le16_to_cpu(event->non_srg_valid_cnt));
+	dev_info(dev->mt76.dev, "SR Tx Count = %u\n",
+		 le32_to_cpu(event->sr_ampdu_mpdu_cnt));
+	dev_info(dev->mt76.dev, "SR Tx Acked Count = %u\n",
+		 le32_to_cpu(event->sr_ampdu_mpdu_acked_cnt));
+}
+
+static void
+mt7915_mcu_rx_sr_event(struct mt7915_dev *dev, struct sk_buff *skb)
+{
+	struct mt7915_mcu_sr_basic_event *event;
+	struct mt7915_phy *phy;
+
+	event = (struct mt7915_mcu_sr_basic_event *)skb->data;
+
+	if (event->band_idx > MT_BAND1)
+		dev_info(dev->mt76.dev, "Invalid band idx %d\n", event->band_idx);
+
+	switch (event->sub_event_id) {
+	case SPR_EVENT_CFG_SR_ENABLE:
+		phy = dev->mt76.phys[event->band_idx]->priv;
+		if (phy)
+			phy->sr_enable = le32_to_cpu(event->value);
+		break;
+	case SPR_EVENT_SR_SW_SD:
+		mt7915_mcu_rx_sr_swsd(dev, skb);
+		break;
+	case SPR_EVENT_SR_HW_IND:
+		mt7915_mcu_rx_sr_hw_indicator(dev, skb);
+		break;
+	default:
+		dev_info(dev->mt76.dev, "Unknown SR event tag %d\n",
+			 event->sub_event_id);
+		break;
+	}
+}
+#endif
+
 static void
 mt7915_mcu_rx_ext_event(struct mt7915_dev *dev, struct sk_buff *skb)
 {
@@ -479,6 +564,11 @@ mt7915_mcu_rx_ext_event(struct mt7915_dev *dev, struct sk_buff *skb)
 	case MCU_EXT_EVENT_BCC_NOTIFY:
 		mt7915_mcu_rx_bcc_notify(dev, skb);
 		break;
+#ifdef MTK_DEBUG
+	case MCU_EXT_EVENT_SR:
+		mt7915_mcu_rx_sr_event(dev, skb);
+		break;
+#endif
 #if defined CONFIG_NL80211_TESTMODE || defined MTK_DEBUG
 	case MCU_EXT_EVENT_BF_STATUS_READ:
 		mt7915_mcu_txbf_status_read(dev, skb);
@@ -524,6 +614,7 @@ void mt7915_mcu_rx_event(struct mt7915_dev *dev, struct sk_buff *skb)
 	     rxd->ext_eid == MCU_EXT_EVENT_PS_SYNC ||
 	     rxd->ext_eid == MCU_EXT_EVENT_BCC_NOTIFY ||
 	     rxd->ext_eid == MCU_EXT_EVENT_BF_STATUS_READ ||
+	     rxd->ext_eid == MCU_EXT_EVENT_SR ||
 	     !rxd->seq) &&
 	     !(rxd->eid == MCU_CMD_EXT_CID &&
 	       rxd->ext_eid == MCU_EXT_EVENT_WA_TX_STAT))
@@ -4002,6 +4093,10 @@ int mt7915_mcu_add_obss_spr(struct mt7915_phy *phy, struct ieee80211_vif *vif,
 	if (ret)
 		return ret;
 
+#ifdef MTK_DEBUG
+	phy->sr_enable = he_obss_pd->enable;
+#endif
+
 	if (sr_scene_detect || !he_obss_pd->enable)
 		return 0;
 
diff --git a/mt7915/mcu.h b/mt7915/mcu.h
index 742a785..f476767 100644
--- a/mt7915/mcu.h
+++ b/mt7915/mcu.h
@@ -42,6 +42,45 @@ struct mt7915_mcu_thermal_notify {
 	u8 rsv[8];
 } __packed;
 
+#ifdef MTK_DEBUG
+struct mt7915_mcu_sr_basic_event {
+	struct mt76_connac2_mcu_rxd rxd;
+
+	u8 sub_event_id;
+	u8 arg_num;
+	u8 band_idx;
+	u8 status;
+	u8 rsv[4];
+	__le32 value;
+} __packed;
+
+struct mt7915_mcu_sr_swsd_event {
+	struct mt7915_mcu_sr_basic_event basic;
+	u8 rsv[32];
+	__le32 sr_tx_airtime[2];
+	__le32 obss_airtime[2];
+	__le32 my_tx_airtime[2];
+	__le32 my_rx_airtime[2];
+	__le32 channel_busy_time[2];
+	__le32 total_airtime[2];
+	__le32 total_airtime_ratio[2];
+	__le32 obss_airtime_ratio[2];
+	u8 rule[2];
+	u8 rsv2[102];
+} __packed;
+
+struct mt7915_mcu_sr_hw_ind_event {
+	struct mt7915_mcu_sr_basic_event basic;
+	u8 rsv[2];
+	__le16 non_srg_valid_cnt;
+	u8 rsv2[4];
+	__le16 inter_bss_ppdu_cnt;
+	u8 rsv3[6];
+	__le32 sr_ampdu_mpdu_cnt;
+	__le32 sr_ampdu_mpdu_acked_cnt;
+} __packed;
+#endif
+
 struct mt7915_mcu_csa_notify {
 	struct mt76_connac2_mcu_rxd rxd;
 
@@ -532,15 +571,24 @@ enum {
 
 enum {
 	SPR_ENABLE = 0x1,
+	SPR_GET_ENABLE = 0x2,
 	SPR_ENABLE_SD = 0x3,
 	SPR_ENABLE_MODE = 0x5,
 	SPR_ENABLE_DPD = 0x23,
 	SPR_ENABLE_TX = 0x25,
 	SPR_SET_SRG_BITMAP = 0x80,
+	SPR_GET_SCENE_COND = 0x84,
 	SPR_SET_PARAM = 0xc2,
+	SPR_GET_STATS = 0xd4,
 	SPR_SET_SIGA = 0xdc,
 };
 
+enum {
+	SPR_EVENT_CFG_SR_ENABLE = 0x1,
+	SPR_EVENT_SR_SW_SD = 0x82,
+	SPR_EVENT_SR_HW_IND = 0xC9,
+};
+
 enum {
 	THERMAL_PROTECT_PARAMETER_CTRL,
 	THERMAL_PROTECT_BASIC_INFO,
diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
index 34f1a35..47f7d16 100644
--- a/mt7915/mt7915.h
+++ b/mt7915/mt7915.h
@@ -354,6 +354,9 @@ struct mt7915_phy {
 	struct mt7915_air_monitor_ctrl amnt_ctrl;
 #endif
 	struct mt7915_scs_ctrl scs_ctrl;
+#ifdef MTK_DEBUG
+	bool sr_enable;
+#endif
 };
 
 #ifdef MTK_DEBUG
diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
index d3d3b17..78ac4e5 100644
--- a/mt7915/mtk_debugfs.c
+++ b/mt7915/mtk_debugfs.c
@@ -3809,16 +3809,34 @@ mt7915_sw_aci_set(void *data, u64 val)
 DEFINE_DEBUGFS_ATTRIBUTE(fops_sw_aci, NULL,
 			 mt7915_sw_aci_set, "%llx\n");
 
+static int
+mt7915_sr_enable_get(void *data, u64 *enable)
+{
+	struct mt7915_phy *phy = data;
+
+	*enable = phy->sr_enable;
+
+	return 0;
+}
+
 static int
 mt7915_sr_enable_set(void *data, u64 val)
 {
 	struct mt7915_phy *phy = data;
+	int ret;
+
+	if (!!val == phy->sr_enable)
+		return 0;
+
+	ret = mt7915_mcu_enable_obss_spr(phy, SPR_ENABLE, !!val);
+	if (ret)
+		return ret;
 
-	return mt7915_mcu_enable_obss_spr(phy, SPR_ENABLE, val);
+	return mt7915_mcu_enable_obss_spr(phy, SPR_GET_ENABLE, 0);
 }
 
-DEFINE_DEBUGFS_ATTRIBUTE(fops_sr_enable, NULL,
-			 mt7915_sr_enable_set, "%llx\n");
+DEFINE_DEBUGFS_ATTRIBUTE(fops_sr_enable, mt7915_sr_enable_get,
+			 mt7915_sr_enable_set, "%llu\n");
 
 static int
 mt7915_scs_enable_set(void *data, u64 val)
@@ -3859,6 +3877,26 @@ mt7915_thermal_recal_set(void *data, u64 val)
 DEFINE_DEBUGFS_ATTRIBUTE(fops_thermal_recal, NULL,
 			 mt7915_thermal_recal_set, "%llu\n");
 
+static int
+mt7915_sr_stats_show(struct seq_file *file, void *data)
+{
+	struct mt7915_phy *phy = file->private;
+
+	return mt7915_mcu_enable_obss_spr(phy, SPR_GET_STATS, 0);
+}
+
+DEFINE_SHOW_ATTRIBUTE(mt7915_sr_stats);
+
+static int
+mt7915_sr_scene_cond_show(struct seq_file *file, void *data)
+{
+	struct mt7915_phy *phy = file->private;
+
+	return mt7915_mcu_enable_obss_spr(phy, SPR_GET_SCENE_COND, 0);
+}
+
+DEFINE_SHOW_ATTRIBUTE(mt7915_sr_scene_cond);
+
 int mt7915_mtk_init_debugfs(struct mt7915_phy *phy, struct dentry *dir)
 {
 	struct mt7915_dev *dev = phy->dev;
@@ -3951,9 +3989,11 @@ int mt7915_mtk_init_debugfs(struct mt7915_phy *phy, struct dentry *dir)
 				    mt7915_show_eeprom_mode);
 	debugfs_create_file("sw_aci", 0600, dir, dev,
 			    &fops_sw_aci);
-	debugfs_create_file("sr_enable", 0200, dir, phy, &fops_sr_enable);
+	debugfs_create_file("sr_enable", 0600, dir, phy, &fops_sr_enable);
 	debugfs_create_file("scs_enable", 0200, dir, phy, &fops_scs_enable);
 	debugfs_create_file("thermal_recal", 0200, dir, dev, &fops_thermal_recal);
+	debugfs_create_file("sr_stats", 0400, dir, phy, &mt7915_sr_stats_fops);
+	debugfs_create_file("sr_scene_cond", 0400, dir, phy, &mt7915_sr_scene_cond_fops);
 
 	return 0;
 }
-- 
2.18.0

