From 5d90eb67164818be692bbd995a7576e5ef8d5a1c 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/1051] wifi: mt76: mt7915: add support for muru_onoff via

---
 mt7915/init.c        |  1 +
 mt7915/mcu.c         | 10 ++++++++--
 mt7915/mcu.h         |  6 ++++++
 mt7915/mt7915.h      |  2 ++
 mt7915/mtk_debugfs.c | 33 +++++++++++++++++++++++++++++++++
 5 files changed, 50 insertions(+), 2 deletions(-)

diff --git a/mt7915/init.c b/mt7915/init.c
index dfca8ae7..2ef1bb02 100644
--- a/mt7915/init.c
+++ b/mt7915/init.c
@@ -363,6 +363,7 @@ mt7915_init_wiphy(struct mt7915_phy *phy)
 		IEEE80211_RADIOTAP_TIMESTAMP_UNIT_US;
 
 	phy->slottime = 9;
+	phy->muru_onoff = OFDMA_DL | OFDMA_UL | MUMIMO_DL | MUMIMO_UL;
 
 	hw->sta_data_size = sizeof(struct mt7915_sta);
 	hw->vif_data_size = sizeof(struct mt7915_vif);
diff --git a/mt7915/mcu.c b/mt7915/mcu.c
index 9baf52b4..6f73a7b4 100644
--- a/mt7915/mcu.c
+++ b/mt7915/mcu.c
@@ -965,6 +965,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;
 
@@ -976,13 +977,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 f32d5256..f44146ed 100644
--- a/mt7915/mcu.h
+++ b/mt7915/mcu.h
@@ -678,4 +678,10 @@ enum CSI_CHAIN_TYPE {
 };
 #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 35ccfa37..e21a101c 100644
--- a/mt7915/mt7915.h
+++ b/mt7915/mt7915.h
@@ -289,6 +289,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 6f71dede..5d4a3b42 100644
--- a/mt7915/mtk_debugfs.c
+++ b/mt7915/mtk_debugfs.c
@@ -2554,6 +2554,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);
@@ -3680,6 +3712,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

