From 74fffd688572bd2f2f9633f0acb0da2dba249aa7 Mon Sep 17 00:00:00 2001
From: Evelyn Tsai <evelyn.tsai@mediatek.com>
Date: Tue, 4 Apr 2023 02:23:57 +0800
Subject: [PATCH 1003/1040] wifi: mt76: mt7915: add support for muru_onoff via

---
 mt7915/mcu.c         | 10 ++++++++--
 mt7915/mcu.h         |  6 ++++++
 mt7915/mt7915.h      |  2 ++
 mt7915/mtk_debugfs.c | 33 +++++++++++++++++++++++++++++++++
 4 files changed, 49 insertions(+), 2 deletions(-)

diff --git a/mt7915/mcu.c b/mt7915/mcu.c
index 729a41d..66ec469 100644
--- a/mt7915/mcu.c
+++ b/mt7915/mcu.c
@@ -875,6 +875,7 @@ mt7915_mcu_sta_muru_tlv(struct mt7915_dev *dev, struct sk_buff *skb,
 {
 	struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv;
 	struct ieee80211_he_cap_elem *elem = &sta->deflink.he_cap.he_cap_elem;
+	struct mt7915_phy *phy = mvif->phy;
 	struct sta_rec_muru *muru;
 	struct tlv *tlv;
 
@@ -886,13 +887,18 @@ mt7915_mcu_sta_muru_tlv(struct mt7915_dev *dev, struct sk_buff *skb,
 
 	muru = (struct sta_rec_muru *)tlv;
 
-	muru->cfg.mimo_dl_en = mvif->cap.he_mu_ebfer ||
+	muru->cfg.mimo_dl_en = (mvif->cap.he_mu_ebfer ||
 			       mvif->cap.vht_mu_ebfer ||
-			       mvif->cap.vht_mu_ebfee;
+			       mvif->cap.vht_mu_ebfee) &&
+			       !!(phy->muru_onoff & MUMIMO_DL);
 	if (!is_mt7915(&dev->mt76))
 		muru->cfg.mimo_ul_en = true;
 	muru->cfg.ofdma_dl_en = true;
 
+	muru->cfg.mimo_ul_en = !!(phy->muru_onoff & MUMIMO_UL);
+	muru->cfg.ofdma_dl_en = !!(phy->muru_onoff & OFDMA_DL);
+	muru->cfg.ofdma_ul_en = !!(phy->muru_onoff & OFDMA_UL);
+
 	if (sta->deflink.vht_cap.vht_supported)
 		muru->mimo_dl.vht_mu_bfee =
 			!!(sta->deflink.vht_cap.cap & IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE);
diff --git a/mt7915/mcu.h b/mt7915/mcu.h
index 67eac5c..84c52d9 100644
--- a/mt7915/mcu.h
+++ b/mt7915/mcu.h
@@ -666,4 +666,10 @@ struct csi_data {
 };
 #endif
 
+/* MURU */
+#define OFDMA_DL                       BIT(0)
+#define OFDMA_UL                       BIT(1)
+#define MUMIMO_DL                      BIT(2)
+#define MUMIMO_UL                      BIT(3)
+
 #endif
diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
index 6192e81..e45e2fb 100644
--- a/mt7915/mt7915.h
+++ b/mt7915/mt7915.h
@@ -252,6 +252,8 @@ struct mt7915_phy {
 	u32 rx_ampdu_ts;
 	u32 ampdu_ref;
 
+	u8 muru_onoff;
+
 	struct mt76_mib_stats mib;
 	struct mt76_channel_state state_ts;
 
diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
index 275acc6..b7c54cc 100644
--- a/mt7915/mtk_debugfs.c
+++ b/mt7915/mtk_debugfs.c
@@ -2556,6 +2556,38 @@ static int mt7915_token_txd_read(struct seq_file *s, void *data)
 	return 0;
 }
 
+static int mt7915_muru_onoff_get(void *data, u64 *val)
+{
+	struct mt7915_phy *phy = data;
+
+	*val = phy->muru_onoff;
+
+	printk("mumimo ul:%d, mumimo dl:%d, ofdma ul:%d, ofdma dl:%d\n",
+		    !!(phy->muru_onoff & MUMIMO_UL),
+		    !!(phy->muru_onoff & MUMIMO_DL),
+		    !!(phy->muru_onoff & OFDMA_UL),
+		    !!(phy->muru_onoff & OFDMA_DL));
+
+	return 0;
+}
+
+static int mt7915_muru_onoff_set(void *data, u64 val)
+{
+	struct mt7915_phy *phy = data;
+
+	if (val > 15) {
+		printk("Wrong value! The value is between 0 ~ 15.\n");
+		goto exit;
+	}
+
+	phy->muru_onoff = val;
+exit:
+	return 0;
+}
+
+DEFINE_DEBUGFS_ATTRIBUTE(fops_muru_onoff, mt7915_muru_onoff_get,
+                       mt7915_muru_onoff_set, "%llx\n");
+
 static int mt7915_amsduinfo_read(struct seq_file *s, void *data)
 {
 	struct mt7915_dev *dev = dev_get_drvdata(s->private);
@@ -3552,6 +3584,7 @@ int mt7915_mtk_init_debugfs(struct mt7915_phy *phy, struct dentry *dir)
 
 	mt7915_mcu_fw_log_2_host(dev, MCU_FW_LOG_WM, 0);
 
+	debugfs_create_file("muru_onoff", 0600, dir, phy, &fops_muru_onoff);
 	debugfs_create_file("fw_debug_module", 0600, dir, dev,
 			    &fops_fw_debug_module);
 	debugfs_create_file("fw_debug_level", 0600, dir, dev,
-- 
2.18.0

