| From babeb3948faef2769f838dd35050eb71c7194175 Mon Sep 17 00:00:00 2001 |
| From: MeiChia Chiu <meichia.chiu@mediatek.com> |
| Date: Thu, 27 Apr 2023 15:37:33 +0800 |
| Subject: [PATCH 1030/1040] wifi: mt76: mt7915: add muru user number debug |
| command |
| |
| --- |
| mt7915/mt7915.h | 1 + |
| mt7915/vendor.c | 15 ++++++++++++++- |
| mt7915/vendor.h | 2 ++ |
| 3 files changed, 17 insertions(+), 1 deletion(-) |
| |
| diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h |
| index 722f3bc..9f62e5e 100644 |
| --- a/mt7915/mt7915.h |
| +++ b/mt7915/mt7915.h |
| @@ -586,6 +586,7 @@ int mt7915_mcu_set_pulse_th(struct mt7915_dev *dev, |
| int mt7915_mcu_set_radar_th(struct mt7915_dev *dev, int index, |
| const struct mt7915_dfs_pattern *pattern); |
| int mt7915_mcu_set_muru_ctrl(struct mt7915_dev *dev, u32 cmd, u32 val); |
| +int mt7915_set_muru_cfg(struct mt7915_phy *phy, u8 mode, u8 val); |
| int mt7915_mcu_apply_group_cal(struct mt7915_dev *dev); |
| int mt7915_mcu_apply_tx_dpd(struct mt7915_phy *phy); |
| int mt7915_mcu_get_chan_mib_info(struct mt7915_phy *phy, bool chan_switch); |
| diff --git a/mt7915/vendor.c b/mt7915/vendor.c |
| index 94c4aad..b450808 100644 |
| --- a/mt7915/vendor.c |
| +++ b/mt7915/vendor.c |
| @@ -45,6 +45,8 @@ static const struct nla_policy |
| mu_ctrl_policy[NUM_MTK_VENDOR_ATTRS_MU_CTRL] = { |
| [MTK_VENDOR_ATTR_MU_CTRL_ONOFF] = {.type = NLA_U8 }, |
| [MTK_VENDOR_ATTR_MU_CTRL_DUMP] = {.type = NLA_U8 }, |
| + [MTK_VENDOR_ATTR_MU_CTRL_OFDMA_MODE] = { .type = NLA_U8 }, |
| + [MTK_VENDOR_ATTR_MU_CTRL_OFDMA_VAL] { .type = NLA_U8 }, |
| }; |
| |
| static const struct nla_policy |
| @@ -1034,9 +1036,10 @@ static int mt7915_vendor_mu_ctrl(struct wiphy *wiphy, |
| int data_len) |
| { |
| struct ieee80211_hw *hw = wiphy_to_ieee80211_hw(wiphy); |
| + struct mt7915_phy *phy = mt7915_hw_phy(hw); |
| struct nlattr *tb[NUM_MTK_VENDOR_ATTRS_MU_CTRL]; |
| int err; |
| - u8 val8; |
| + u8 val8, mode; |
| u32 val32 = 0; |
| |
| err = nla_parse(tb, MTK_VENDOR_ATTR_MU_CTRL_MAX, data, data_len, |
| @@ -1050,6 +1053,16 @@ static int mt7915_vendor_mu_ctrl(struct wiphy *wiphy, |
| FIELD_PREP(RATE_CFG_VAL, val8); |
| ieee80211_iterate_active_interfaces_atomic(hw, IEEE80211_IFACE_ITER_RESUME_ALL, |
| mt7915_set_wireless_vif, &val32); |
| + } else if (tb[MTK_VENDOR_ATTR_MU_CTRL_OFDMA_MODE]) { |
| + mode = nla_get_u8(tb[MTK_VENDOR_ATTR_MU_CTRL_OFDMA_MODE]); |
| + |
| + if (!tb[MTK_VENDOR_ATTR_MU_CTRL_OFDMA_VAL]) |
| + return -EINVAL; |
| + |
| + val8 = nla_get_u8(tb[MTK_VENDOR_ATTR_MU_CTRL_OFDMA_VAL]); |
| + err = mt7915_set_muru_cfg(phy, mode, val8); |
| + if (err) |
| + return err; |
| } |
| |
| return 0; |
| diff --git a/mt7915/vendor.h b/mt7915/vendor.h |
| index 358a16f..20526ea 100644 |
| --- a/mt7915/vendor.h |
| +++ b/mt7915/vendor.h |
| @@ -102,6 +102,8 @@ enum mtk_vendor_attr_mu_ctrl { |
| |
| MTK_VENDOR_ATTR_MU_CTRL_ONOFF, |
| MTK_VENDOR_ATTR_MU_CTRL_DUMP, |
| + MTK_VENDOR_ATTR_MU_CTRL_OFDMA_MODE, |
| + MTK_VENDOR_ATTR_MU_CTRL_OFDMA_VAL, |
| |
| /* keep last */ |
| NUM_MTK_VENDOR_ATTRS_MU_CTRL, |
| -- |
| 2.18.0 |
| |