[rdkb][common][bsp][Refactor and sync wifi from openwrt]
[Description]
efcf684 [MAC80211][hostapd][Fix itxbfen default to disable]
de4501b [mac80211][app][Add mt7996e WED ON case support]
724b01f [MAC80211][hostapd][rebase patch based on 2023-03-29]
854dd5a [mac80211][regdb][Fix patch fail]
b9034cf [MAC80211][regdb][Add U-NII-4 support to country code vv]
32dc14f [MAC80211][regdb][Add 5G U-NII-4 in default country]
8e967da [MAC80211][mt76][Enable Wi-Fi interface when AP boots up]
2a9366f [MAC80211][hostapd][Add muru user number debug command]
813385b [MAC80211][mt76][Add muru user number debug command]
[Release-log]
Change-Id: I2d7d65905367346c8933b9c5d8672893650abc29
diff --git a/recipes-wifi/linux-mt76/files/patches/1034-wifi-mt76-mt7915-add-muru-user-number-debug-command.patch b/recipes-wifi/linux-mt76/files/patches/1034-wifi-mt76-mt7915-add-muru-user-number-debug-command.patch
new file mode 100644
index 0000000..05cab8b
--- /dev/null
+++ b/recipes-wifi/linux-mt76/files/patches/1034-wifi-mt76-mt7915-add-muru-user-number-debug-command.patch
@@ -0,0 +1,82 @@
+From 945359050d7ed6bc288a187a22f39351985c9007 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] 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 2e5295b..f9922f9 100644
+--- a/mt7915/mt7915.h
++++ b/mt7915/mt7915.h
+@@ -644,6 +644,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 af60880..a2f3f45 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
+@@ -1035,9 +1037,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,
+@@ -1051,6 +1054,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.39.0
+