| From f57bad3523d617ebb4b1357e9e1bf28c23421fde 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/1128] 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 5a28a554..7acb3304 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 |
| @@ -997,6 +998,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, |
| @@ -1122,6 +1147,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 83c41bc1..57f52f3a 100644 |
| --- a/mt7915/vendor.h |
| +++ b/mt7915/vendor.h |
| @@ -58,6 +58,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 |
| |