From cf6ba9d0fb09e2c7975b15ede8a5389b700e1f1a Mon Sep 17 00:00:00 2001
From: TomLiu <tomml.liu@mediatek.com>
Date: Thu, 11 Aug 2022 18:09:45 -0700
Subject: [PATCH 1123/1127] mt76: HEMU: Add dump support

Change-Id: I521214f3feb6f0d528a9f550255050ffd1ec96d2
---
 mt7915/vendor.c | 26 ++++++++++++++++++++++++++
 mt7915/vendor.h |  1 +
 2 files changed, 27 insertions(+)

diff --git a/mt7915/vendor.c b/mt7915/vendor.c
index cd5c3b83..5e34b852 100644
--- a/mt7915/vendor.c
+++ b/mt7915/vendor.c
@@ -37,6 +37,7 @@ wireless_ctrl_policy[NUM_MTK_VENDOR_ATTRS_WIRELESS_CTRL] = {
 static const struct nla_policy
 hemu_ctrl_policy[NUM_MTK_VENDOR_ATTRS_HEMU_CTRL] = {
 	[MTK_VENDOR_ATTR_HEMU_CTRL_ONOFF] = {.type = NLA_U8 },
+	[MTK_VENDOR_ATTR_HEMU_CTRL_DUMP] = {.type = NLA_U8 },
 };
 
 static const struct nla_policy
@@ -1004,6 +1005,30 @@ static int mt7915_vendor_hemu_ctrl(struct wiphy *wiphy,
 	return 0;
 }
 
+
+static int
+mt7915_vendor_hemu_ctrl_dump(struct wiphy *wiphy, struct wireless_dev *wdev,
+			     struct sk_buff *skb, const void *data, int data_len,
+			     unsigned long *storage)
+{
+	struct ieee80211_hw *hw = wiphy_to_ieee80211_hw(wiphy);
+	struct mt7915_phy *phy = mt7915_hw_phy(hw);
+	struct mt7915_dev *dev = phy->dev;
+	void *a;
+	int len = 0;
+
+	if (*storage == 1)
+		return -ENOENT;
+	*storage = 1;
+
+	if (nla_put_u8(skb, MTK_VENDOR_ATTR_HEMU_CTRL_DUMP, dev->dbg.muru_onoff))
+		return -ENOMEM;
+	len += 1;
+
+	return len;
+}
+
+
 static int
 mt7915_vendor_phy_capa_ctrl_dump(struct wiphy *wiphy, struct wireless_dev *wdev,
 			     struct sk_buff *skb, const void *data, int data_len,
@@ -1192,6 +1217,7 @@ static const struct wiphy_vendor_command mt7915_vendor_commands[] = {
 		.flags = WIPHY_VENDOR_CMD_NEED_NETDEV |
 			WIPHY_VENDOR_CMD_NEED_RUNNING,
 		.doit = mt7915_vendor_hemu_ctrl,
+		.dumpit = mt7915_vendor_hemu_ctrl_dump,
 		.policy = hemu_ctrl_policy,
 		.maxattr = MTK_VENDOR_ATTR_HEMU_CTRL_MAX,
 	},
diff --git a/mt7915/vendor.h b/mt7915/vendor.h
index 72319717..c19ffe72 100644
--- a/mt7915/vendor.h
+++ b/mt7915/vendor.h
@@ -72,6 +72,7 @@ enum mtk_vendor_attr_hemu_ctrl {
 	MTK_VENDOR_ATTR_HEMU_CTRL_UNSPEC,
 
 	MTK_VENDOR_ATTR_HEMU_CTRL_ONOFF,
+	MTK_VENDOR_ATTR_HEMU_CTRL_DUMP,
 
 	/* keep last */
 	NUM_MTK_VENDOR_ATTRS_HEMU_CTRL,
-- 
2.18.0

