blob: 467158a8767e17c9d1b3aa4a770d7aac3b62ec13 [file] [log] [blame]
developera72bbd82024-02-04 18:27:28 +08001From 910b19ddc72c72ebd6920ebd616f9be4e01a8de2 Mon Sep 17 00:00:00 2001
developer1c8c97b2022-08-11 18:27:08 -07002From: TomLiu <tomml.liu@mediatek.com>
3Date: Thu, 11 Aug 2022 18:09:45 -0700
developera72bbd82024-02-04 18:27:28 +08004Subject: [PATCH 1020/1048] wifi: mt76: mt7915: Add mu dump support
developer1c8c97b2022-08-11 18:27:08 -07005
developer1c8c97b2022-08-11 18:27:08 -07006---
developereb2bd8e2023-02-09 11:16:04 +08007 mt7915/vendor.c | 24 ++++++++++++++++++++++++
developer1c8c97b2022-08-11 18:27:08 -07008 mt7915/vendor.h | 1 +
developereb2bd8e2023-02-09 11:16:04 +08009 2 files changed, 25 insertions(+)
developer1c8c97b2022-08-11 18:27:08 -070010
11diff --git a/mt7915/vendor.c b/mt7915/vendor.c
developera72bbd82024-02-04 18:27:28 +080012index 3a58684..ac6f637 100644
developer1c8c97b2022-08-11 18:27:08 -070013--- a/mt7915/vendor.c
14+++ b/mt7915/vendor.c
developera72bbd82024-02-04 18:27:28 +080015@@ -38,6 +38,7 @@ wireless_ctrl_policy[NUM_MTK_VENDOR_ATTRS_WIRELESS_CTRL] = {
developer1c8c97b2022-08-11 18:27:08 -070016 static const struct nla_policy
developer57de9b72023-02-20 11:15:54 +080017 mu_ctrl_policy[NUM_MTK_VENDOR_ATTRS_MU_CTRL] = {
18 [MTK_VENDOR_ATTR_MU_CTRL_ONOFF] = {.type = NLA_U8 },
19+ [MTK_VENDOR_ATTR_MU_CTRL_DUMP] = {.type = NLA_U8 },
developer1c8c97b2022-08-11 18:27:08 -070020 };
21
22 static const struct nla_policy
developera72bbd82024-02-04 18:27:28 +080023@@ -1025,6 +1026,28 @@ static int mt7915_vendor_mu_ctrl(struct wiphy *wiphy,
developer1c8c97b2022-08-11 18:27:08 -070024 return 0;
25 }
26
27+
28+static int
developer57de9b72023-02-20 11:15:54 +080029+mt7915_vendor_mu_ctrl_dump(struct wiphy *wiphy, struct wireless_dev *wdev,
developer1c8c97b2022-08-11 18:27:08 -070030+ struct sk_buff *skb, const void *data, int data_len,
31+ unsigned long *storage)
32+{
33+ struct ieee80211_hw *hw = wiphy_to_ieee80211_hw(wiphy);
34+ struct mt7915_phy *phy = mt7915_hw_phy(hw);
developer1c8c97b2022-08-11 18:27:08 -070035+ int len = 0;
36+
37+ if (*storage == 1)
38+ return -ENOENT;
39+ *storage = 1;
40+
developer57de9b72023-02-20 11:15:54 +080041+ if (nla_put_u8(skb, MTK_VENDOR_ATTR_MU_CTRL_DUMP, phy->muru_onoff))
developer1c8c97b2022-08-11 18:27:08 -070042+ return -ENOMEM;
43+ len += 1;
44+
45+ return len;
46+}
47+
48+
49 static int
50 mt7915_vendor_phy_capa_ctrl_dump(struct wiphy *wiphy, struct wireless_dev *wdev,
51 struct sk_buff *skb, const void *data, int data_len,
developera72bbd82024-02-04 18:27:28 +080052@@ -1211,6 +1234,7 @@ static const struct wiphy_vendor_command mt7915_vendor_commands[] = {
developer1c8c97b2022-08-11 18:27:08 -070053 .flags = WIPHY_VENDOR_CMD_NEED_NETDEV |
54 WIPHY_VENDOR_CMD_NEED_RUNNING,
developer57de9b72023-02-20 11:15:54 +080055 .doit = mt7915_vendor_mu_ctrl,
56+ .dumpit = mt7915_vendor_mu_ctrl_dump,
57 .policy = mu_ctrl_policy,
58 .maxattr = MTK_VENDOR_ATTR_MU_CTRL_MAX,
developer1c8c97b2022-08-11 18:27:08 -070059 },
60diff --git a/mt7915/vendor.h b/mt7915/vendor.h
developera72bbd82024-02-04 18:27:28 +080061index 284994a..8c2a996 100644
developer1c8c97b2022-08-11 18:27:08 -070062--- a/mt7915/vendor.h
63+++ b/mt7915/vendor.h
developera72bbd82024-02-04 18:27:28 +080064@@ -73,6 +73,7 @@ enum mtk_vendor_attr_mu_ctrl {
developer57de9b72023-02-20 11:15:54 +080065 MTK_VENDOR_ATTR_MU_CTRL_UNSPEC,
developer1c8c97b2022-08-11 18:27:08 -070066
developer57de9b72023-02-20 11:15:54 +080067 MTK_VENDOR_ATTR_MU_CTRL_ONOFF,
68+ MTK_VENDOR_ATTR_MU_CTRL_DUMP,
developer1c8c97b2022-08-11 18:27:08 -070069
70 /* keep last */
developer57de9b72023-02-20 11:15:54 +080071 NUM_MTK_VENDOR_ATTRS_MU_CTRL,
developer1c8c97b2022-08-11 18:27:08 -070072--
developer0443cd32023-09-19 14:11:49 +0800732.18.0
developer1c8c97b2022-08-11 18:27:08 -070074