From 1d76d947d04c75682c9d7ff383c98071e6980691 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/1009] wifi: mt76: mt7915: add support for muru_onoff via

---
 mt7915/init.c        |  2 ++
 mt7915/mcu.c         | 12 +++++++++---
 mt7915/mcu.h         |  6 ++++++
 mt7915/mt7915.h      |  2 ++
 mt7915/mtk_debugfs.c | 33 +++++++++++++++++++++++++++++++++
 5 files changed, 52 insertions(+), 3 deletions(-)

diff --git a/mt7915/init.c b/mt7915/init.c
index c27469e..1177e4e 100644
--- a/mt7915/init.c
+++ b/mt7915/init.c
@@ -445,6 +445,8 @@ mt7915_init_wiphy(struct mt7915_phy *phy)
 		mphy->leds.cdev.brightness_set = mt7915_led_set_brightness;
 		mphy->leds.cdev.blink_set = mt7915_led_set_blink;
 	}
+
+	phy->muru_onoff = OFDMA_DL | MUMIMO_UL | MUMIMO_DL;
 }
 
 static void
diff --git a/mt7915/mcu.c b/mt7915/mcu.c
index c75953a..d23a292 100644
--- a/mt7915/mcu.c
+++ b/mt7915/mcu.c
@@ -865,6 +865,7 @@ mt7915_mcu_sta_muru_tlv(struct mt7915_dev *dev, struct sk_buff *skb,
 			struct ieee80211_sta *sta, struct ieee80211_vif *vif)
 {
 	struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv;
+	struct mt7915_phy *phy = mvif->phy;
 	struct ieee80211_he_cap_elem *elem = &sta->deflink.he_cap.he_cap_elem;
 	struct sta_rec_muru *muru;
 	struct tlv *tlv;
@@ -877,13 +878,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 ||
-			       mvif->cap.vht_mu_ebfer ||
-			       mvif->cap.vht_mu_ebfee;
+	muru->cfg.mimo_dl_en = (mvif->cap.he_mu_ebfer ||
+				mvif->cap.vht_mu_ebfer ||
+			        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 159528a..1999259 100644
--- a/mt7915/mcu.h
+++ b/mt7915/mcu.h
@@ -607,4 +607,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 0d186ed..47bc2f2 100644
--- a/mt7915/mt7915.h
+++ b/mt7915/mt7915.h
@@ -307,6 +307,8 @@ struct mt7915_phy {
 	u32 rx_ampdu_ts;
 	u32 ampdu_ref;
 
+	u8 muru_onoff;
+
 	struct mib_stats mib;
 	struct mt76_channel_state state_ts;
 
diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
index 4bbb410..1db1d87 100644
--- a/mt7915/mtk_debugfs.c
+++ b/mt7915/mtk_debugfs.c
@@ -2558,6 +2558,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);
@@ -3538,6 +3570,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

