[rdkb][common][bsp][Refactor and sync wifi from openwrt]
[Description]
5b228d80 [MAC80211][WiFi6][mt76][Fix NULL pointer access when setting QoS map]
7d86a237 [MAC80211][WiFi6][mt76][Fix merlin 5g can't receive rx data at two pcie mode]
0ffd8c9d [MAC80211][WiFi6][mt76][Fix runtime change security mode to open issue]
e20ea87d [MAC80211][misc][Separate MT7992 & MT7996 firmware to reduce image size]
0d70c868 [MAC80211][WiFi6][hostapd][Fix failure of BSS-wise QoS-map setting]
ccf5e237 [MAC80211][Rebase Patch][Change QoS-map setting method to callback function]
81505830 [MAC80211][WiFi6][mt76][Change QoS-map setting method to callback function]
53322d00 [MAC80211][Rebase Patch][Add callback function to set QoS map in HW]
c36b2f81 [MAC80211][WiFi6][core][Add callback function to set QoS map in HW]
c544feaf [MAC80211][WiFi7][Misc][Fix build fail because of wifi-scripts package and iw version]
b471f43a [MAC80211][WiFi7][app][convert mwtcl cmd to mt76 internal debug cmd]
dbd53909 [MAC80211][WiFi6][Misc][Fix Cheetah build fail]
8e6f43e2 [MAC80211][WiFi7][misc][use repo to maintain wifi-scripts]
e497c9f7 [MAC80211][WiFi7][misc][Fix legacy non-EHT bss + MLD issue]
56c2223c [MAC80211][WiFi7][app][convert iwpriv/mwctl command with link_id]
8d1960db [MAC80211][WiFi7][misc][Fix wrong path for per-radio antenna config patch]
c587263f [MAC80211][WiFi7][misc][Add per-radio antenna config support]
[Release-log]
Change-Id: I4b068cc1b5717c4927daaeaac04dca6642454c97
diff --git a/recipes-wifi/linux-mt76/files/patches/0018-wifi-mt76-mt7915-fix-inconsistent-QoS-mapping-betwee.patch b/recipes-wifi/linux-mt76/files/patches/0018-wifi-mt76-mt7915-fix-inconsistent-QoS-mapping-betwee.patch
index 1e80fd3..c871c60 100644
--- a/recipes-wifi/linux-mt76/files/patches/0018-wifi-mt76-mt7915-fix-inconsistent-QoS-mapping-betwee.patch
+++ b/recipes-wifi/linux-mt76/files/patches/0018-wifi-mt76-mt7915-fix-inconsistent-QoS-mapping-betwee.patch
@@ -1,25 +1,23 @@
-From aae5bbaf6054b1bd04e31346054ddad42d85d33e Mon Sep 17 00:00:00 2001
+From 5fd6278fa4d62c140f40fe2d7ae0bd86074b2d36 Mon Sep 17 00:00:00 2001
From: Benjamin Lin <benjamin-jw.lin@mediatek.com>
Date: Thu, 25 Apr 2024 17:17:13 +0800
-Subject: [PATCH 18/21] wifi: mt76: mt7915: fix inconsistent QoS mapping
- between SW and HW
+Subject: [PATCH] wifi: mt76: mt7915: fix inconsistent QoS mapping between SW
+ and HW
The mapping from IP DSCP to IEEE 802.11 user priority may be customized.
-Therefore, driver needs to pass the mapping to HW, so that the QoS type of traffic can be mapped in a consistent manner for both SW and HW paths.
+Therefore, the mapping needs to be passed to HW, so that the QoS type of traffic can be mapped in a consistent manner for both SW and HW paths.
Signed-off-by: Benjamin Lin <benjamin-jw.lin@mediatek.com>
---
mt76_connac_mcu.h | 1 +
- mt7915/main.c | 5 +++++
- mt7915/mcu.c | 37 +++++++++++++++++++++++++++++++++++++
- mt7915/mt7915.h | 3 +++
- 4 files changed, 46 insertions(+)
+ mt7915/main.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 45 insertions(+)
diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 1dd8244..0936c1c 100644
+index 8899eea..5c25f1a 100644
--- a/mt76_connac_mcu.h
+++ b/mt76_connac_mcu.h
-@@ -1236,6 +1236,7 @@ enum {
+@@ -1238,6 +1238,7 @@ enum {
MCU_EXT_CMD_GROUP_PRE_CAL_INFO = 0xab,
MCU_EXT_CMD_DPD_PRE_CAL_INFO = 0xac,
MCU_EXT_CMD_PHY_STAT_INFO = 0xad,
@@ -28,31 +26,15 @@
enum {
diff --git a/mt7915/main.c b/mt7915/main.c
-index 5ed84bc..c6880ca 100644
+index 5ed84bc..be11e4f 100644
--- a/mt7915/main.c
+++ b/mt7915/main.c
-@@ -1697,6 +1697,11 @@ mt7915_net_fill_forward_path(struct ieee80211_hw *hw,
-
- ctx->dev = NULL;
-
-+ if (!mvif->qos_map_enabled) {
-+ mt7915_mcu_set_qos_map(dev, vif);
-+ mvif->qos_map_enabled = true;
-+ }
-+
+@@ -1619,6 +1619,49 @@ mt7915_set_frag_threshold(struct ieee80211_hw *hw, u32 val)
return 0;
}
- #endif
-diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 446c512..64d2710 100644
---- a/mt7915/mcu.c
-+++ b/mt7915/mcu.c
-@@ -4212,3 +4212,40 @@ int mt7915_mcu_rf_regval(struct mt7915_dev *dev, u32 regidx, u32 *val, bool set)
- return 0;
- }
-+
-+int mt7915_mcu_set_qos_map(struct mt7915_dev *dev, struct ieee80211_vif *vif)
++static int
++mt7915_set_qos_map(struct ieee80211_vif *vif, struct cfg80211_qos_map *qos_map)
+{
+#define IP_DSCP_NUM 64
+ struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv;
@@ -63,52 +45,48 @@
+ s8 qos_map[IP_DSCP_NUM];
+ } __packed req = {
+ .bss_idx = mvif->mt76.idx,
-+ .qos_map_enable = false,
++ .qos_map_enable = qos_map ? true : false,
+ };
-+ struct cfg80211_qos_map *qos_map;
+
-+ rcu_read_lock();
-+ qos_map = ieee80211_get_qos_map(vif);
++ /* Prevent access to members of mt7915_vif before its initialization. */
++ if (!mvif->phy)
++ return -EPERM;
++
+ if (qos_map) {
-+ struct cfg80211_dscp_range *dscp_range = qos_map->up;
-+ s8 up;
++ struct cfg80211_dscp_exception *exception = qos_map->dscp_exception;
++ struct cfg80211_dscp_range *range = qos_map->up;
++ s8 i;
++
++ for (i = 0; i < IEEE80211_NUM_UPS; ++i) {
++ u8 low = range[i].low, high = range[i].high;
+
-+ req.qos_map_enable = true;
-+ for (up = 0; up < IEEE80211_NUM_UPS; ++up) {
-+ u8 low = dscp_range[up].low, high = dscp_range[up].high;
++ if (low < IP_DSCP_NUM && high < IP_DSCP_NUM && low <= high)
++ memset(req.qos_map + low, i, high - low + 1);
++ }
+
-+ if (low >= IP_DSCP_NUM || high >= IP_DSCP_NUM || low > high)
-+ continue;
++ for (i = 0; i < qos_map->num_des; ++i) {
++ u8 dscp = exception[i].dscp, up = exception[i].up;
+
-+ memset(req.qos_map + low, up, high - low + 1);
++ if (dscp < IP_DSCP_NUM && up < IEEE80211_NUM_UPS)
++ req.qos_map[dscp] = up;
+ }
+ }
-+ rcu_read_unlock();
+
-+ return mt76_mcu_send_msg(&dev->mt76, MCU_WA_EXT_CMD(SET_QOS_MAP), &req,
-+ sizeof(req), false);
++ return mt76_mcu_send_msg(&mvif->phy->dev->mt76, MCU_WA_EXT_CMD(SET_QOS_MAP),
++ &req, sizeof(req), true);
+}
-diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 74cd8ca..c813433 100644
---- a/mt7915/mt7915.h
-+++ b/mt7915/mt7915.h
-@@ -175,6 +175,8 @@ struct mt7915_vif {
-
- struct ieee80211_tx_queue_params queue_params[IEEE80211_NUM_ACS];
- struct cfg80211_bitrate_mask bitrate_mask;
+
-+ bool qos_map_enabled;
- };
-
- /* crash-dump */
-@@ -521,6 +523,7 @@ int mt7915_mcu_fw_dbg_ctrl(struct mt7915_dev *dev, u32 module, u8 level);
- void mt7915_mcu_rx_event(struct mt7915_dev *dev, struct sk_buff *skb);
- void mt7915_mcu_exit(struct mt7915_dev *dev);
- void mt7915_mcu_wmm_pbc_work(struct work_struct *work);
-+int mt7915_mcu_set_qos_map(struct mt7915_dev *dev, struct ieee80211_vif *vif);
-
- static inline u16 mt7915_wtbl_size(struct mt7915_dev *dev)
- {
+ static int
+ mt7915_set_radar_background(struct ieee80211_hw *hw,
+ struct cfg80211_chan_def *chandef)
+@@ -1747,6 +1790,7 @@ const struct ieee80211_ops mt7915_ops = {
+ .add_twt_setup = mt7915_mac_add_twt_setup,
+ .twt_teardown_request = mt7915_twt_teardown_request,
+ .set_frag_threshold = mt7915_set_frag_threshold,
++ .set_qos_map = mt7915_set_qos_map,
+ CFG80211_TESTMODE_CMD(mt76_testmode_cmd)
+ CFG80211_TESTMODE_DUMP(mt76_testmode_dump)
+ #ifdef CONFIG_MAC80211_DEBUGFS
--
2.18.0
diff --git a/recipes-wifi/linux-mt76/files/patches/0021-wifi-mt76-mt7915-remove-unnecessary-register-setting.patch b/recipes-wifi/linux-mt76/files/patches/0021-wifi-mt76-mt7915-remove-unnecessary-register-setting.patch
index cc3e8cd..1f9d540 100644
--- a/recipes-wifi/linux-mt76/files/patches/0021-wifi-mt76-mt7915-remove-unnecessary-register-setting.patch
+++ b/recipes-wifi/linux-mt76/files/patches/0021-wifi-mt76-mt7915-remove-unnecessary-register-setting.patch
@@ -1,20 +1,19 @@
-From cae043c9d117d77ed5189c8c258b7f4ea622e79f Mon Sep 17 00:00:00 2001
+From 1af0fe3345f26594c78e91681997ad3a1838fc7c Mon Sep 17 00:00:00 2001
From: Henry Yen <henry.yen@mediatek.com>
Date: Wed, 6 Mar 2024 12:42:06 +0800
-Subject: [PATCH 21/21] wifi: mt76: mt7915: remove unnecessary register
- settings
+Subject: [PATCH] wifi: mt76: mt7915: remove unnecessary register settings
Remove unnecessary register settings from the driver layer,
and let firmware take over the configuration control.
Signed-off-by: Henry.Yen <henry.yen@mediatek.com>
---
- mt7915/init.c | 35 -----------------------------------
+ mt7915/init.c | 30 ------------------------------
mt7915/mac.c | 43 +------------------------------------------
- 2 files changed, 1 insertion(+), 77 deletions(-)
+ 2 files changed, 1 insertion(+), 72 deletions(-)
diff --git a/mt7915/init.c b/mt7915/init.c
-index 19a68c5..2ae7977 100644
+index 19a68c5..15ae27a 100644
--- a/mt7915/init.c
+++ b/mt7915/init.c
@@ -475,30 +475,6 @@ mt7915_mac_init_band(struct mt7915_dev *dev, u8 band)
@@ -48,19 +47,19 @@
/* mt7915: disable rx rate report by default due to hw issues */
mt76_clear(dev, MT_DMA_DCR0(band), MT_DMA_DCR0_RXD_G5_EN);
-@@ -601,23 +577,12 @@ mt7915_init_led_mux(struct mt7915_dev *dev)
+@@ -601,23 +577,17 @@ mt7915_init_led_mux(struct mt7915_dev *dev)
void mt7915_mac_init(struct mt7915_dev *dev)
{
int i;
- u32 rx_len = is_mt7915(&dev->mt76) ? 0x400 : 0x680;
--
-- /* config pse qid6 wfdma port selection */
-- if (!is_mt7915(&dev->mt76) && dev->hif2)
-- mt76_rmw(dev, MT_WF_PP_TOP_RXQ_WFDMA_CF_5, 0,
-- MT_WF_PP_TOP_RXQ_QID6_WFDMA_HIF_SEL_MASK);
--
-- mt76_rmw_field(dev, MT_MDP_DCR1, MT_MDP_DCR1_MAX_RX_LEN, rx_len);
+ /* config pse qid6 wfdma port selection */
+ if (!is_mt7915(&dev->mt76) && dev->hif2)
+ mt76_rmw(dev, MT_WF_PP_TOP_RXQ_WFDMA_CF_5, 0,
+ MT_WF_PP_TOP_RXQ_QID6_WFDMA_HIF_SEL_MASK);
+
+- mt76_rmw_field(dev, MT_MDP_DCR1, MT_MDP_DCR1_MAX_RX_LEN, rx_len);
+-
if (!is_mt7915(&dev->mt76))
mt76_clear(dev, MT_MDP_DCR2, MT_MDP_DCR2_RX_TRANS_SHORT);
else
diff --git a/recipes-wifi/linux-mt76/files/patches/1000-wifi-mt76-mt7915-add-mtk-internal-debug-tools-for-mt.patch b/recipes-wifi/linux-mt76/files/patches/1000-wifi-mt76-mt7915-add-mtk-internal-debug-tools-for-mt.patch
index 1ca58f2..646d0bf 100644
--- a/recipes-wifi/linux-mt76/files/patches/1000-wifi-mt76-mt7915-add-mtk-internal-debug-tools-for-mt.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1000-wifi-mt76-mt7915-add-mtk-internal-debug-tools-for-mt.patch
@@ -1,8 +1,7 @@
-From 95297b6768f36fbe3a9d7c6c8bef138e4f3c3fdb Mon Sep 17 00:00:00 2001
+From 57ca0074490c096cf61f5857ceb233f9a763cf82 Mon Sep 17 00:00:00 2001
From: Shayne Chen <shayne.chen@mediatek.com>
Date: Wed, 22 Jun 2022 10:39:47 +0800
-Subject: [PATCH 1000/1051] wifi: mt76: mt7915: add mtk internal debug tools
- for mt76
+Subject: [PATCH] wifi: mt76: mt7915: add mtk internal debug tools for mt76
---
mt76_connac_mcu.h | 6 +
@@ -24,10 +23,10 @@
create mode 100644 mt7915/mtk_mcu.c
diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 99cdd1b..a8690cd 100644
+index 79d248d..78ddc6e 100644
--- a/mt76_connac_mcu.h
+++ b/mt76_connac_mcu.h
-@@ -1195,6 +1195,7 @@ enum {
+@@ -1197,6 +1197,7 @@ enum {
MCU_EXT_CMD_SET_TX_POWER_CTRL = 0x11,
MCU_EXT_CMD_FW_LOG_2_HOST = 0x13,
MCU_EXT_CMD_TXBF_ACTION = 0x1e,
@@ -35,7 +34,7 @@
MCU_EXT_CMD_EFUSE_BUFFER_MODE = 0x21,
MCU_EXT_CMD_THERMAL_PROT = 0x23,
MCU_EXT_CMD_STA_REC_UPDATE = 0x25,
-@@ -1218,6 +1219,11 @@ enum {
+@@ -1220,6 +1221,11 @@ enum {
MCU_EXT_CMD_TX_POWER_FEATURE_CTRL = 0x58,
MCU_EXT_CMD_RXDCOC_CAL = 0x59,
MCU_EXT_CMD_GET_MIB_INFO = 0x5a,
@@ -272,7 +271,7 @@
}
diff --git a/mt7915/main.c b/mt7915/main.c
-index 1da1d32..5523031 100644
+index 417002f..4d8cb1c 100644
--- a/mt7915/main.c
+++ b/mt7915/main.c
@@ -73,7 +73,11 @@ int mt7915_run(struct ieee80211_hw *hw)
@@ -296,7 +295,7 @@
mt7915_mac_wtbl_update(dev, idx,
MT_WTBL_UPDATE_ADM_COUNT_CLEAR);
diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 91a1031..37b1505 100644
+index 2326523..5493efa 100644
--- a/mt7915/mcu.c
+++ b/mt7915/mcu.c
@@ -205,6 +205,11 @@ mt7915_mcu_send_message(struct mt76_dev *mdev, struct sk_buff *skb,
@@ -356,10 +355,11 @@
int mt7915_mcu_rf_regval(struct mt7915_dev *dev, u32 regidx, u32 *val, bool set)
{
struct {
-@@ -4214,6 +4241,25 @@ int mt7915_mcu_rf_regval(struct mt7915_dev *dev, u32 regidx, u32 *val, bool set)
+@@ -4213,3 +4240,22 @@ int mt7915_mcu_rf_regval(struct mt7915_dev *dev, u32 regidx, u32 *val, bool set)
+
return 0;
}
-
++
+#ifdef MTK_DEBUG
+int mt7915_mcu_set_amsdu_algo(struct mt7915_dev *dev, u16 wcid, u8 enable)
+{
@@ -378,10 +378,6 @@
+ return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(MEC_CTRL), &req, sizeof(req), true);
+}
+#endif
-+
- int mt7915_mcu_set_qos_map(struct mt7915_dev *dev, struct ieee80211_vif *vif)
- {
- #define IP_DSCP_NUM 64
diff --git a/mt7915/mcu.h b/mt7915/mcu.h
index fa0847d..9ae0f07 100644
--- a/mt7915/mcu.h
@@ -398,7 +394,7 @@
MCU_WA_PARAM_RED_SETTING = 0x40,
};
diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index c813433..d2224dc 100644
+index 74cd8ca..58c0bf9 100644
--- a/mt7915/mt7915.h
+++ b/mt7915/mt7915.h
@@ -9,6 +9,7 @@
@@ -409,7 +405,7 @@
#define MT7915_MAX_INTERFACES 19
#define MT7915_WTBL_SIZE 288
#define MT7916_WTBL_SIZE 544
-@@ -246,6 +247,14 @@ struct mt7915_phy {
+@@ -244,6 +245,14 @@ struct mt7915_phy {
#endif
};
@@ -424,7 +420,7 @@
struct mt7915_dev {
union { /* must be first */
struct mt76_dev mt76;
-@@ -329,6 +338,33 @@ struct mt7915_dev {
+@@ -327,6 +336,33 @@ struct mt7915_dev {
void __iomem *dcm;
void __iomem *sku;
@@ -458,7 +454,7 @@
bool wmm_pbc_enable;
struct work_struct wmm_pbc_work;
u32 adie_type;
-@@ -613,4 +649,24 @@ void mt7915_sta_add_debugfs(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -610,4 +646,24 @@ void mt7915_sta_add_debugfs(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
int mt7915_mmio_wed_init(struct mt7915_dev *dev, void *pdev_ptr,
bool pci, int *irq);
@@ -1933,7 +1929,7 @@
+#endif
diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
new file mode 100644
-index 0000000..62d3a99
+index 0000000..665d8bd
--- /dev/null
+++ b/mt7915/mtk_debugfs.c
@@ -0,0 +1,3750 @@
diff --git a/recipes-wifi/linux-mt76/files/patches/1011-wifi-mt76-testmode-add-ZWDFS-test-mode-support.patch b/recipes-wifi/linux-mt76/files/patches/1011-wifi-mt76-testmode-add-ZWDFS-test-mode-support.patch
index 1d59fe5..3c95bdb 100644
--- a/recipes-wifi/linux-mt76/files/patches/1011-wifi-mt76-testmode-add-ZWDFS-test-mode-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1011-wifi-mt76-testmode-add-ZWDFS-test-mode-support.patch
@@ -1,7 +1,7 @@
-From a1458a719b2aaa796b0345a8d1cec7f0c574ffaa Mon Sep 17 00:00:00 2001
+From d1999bcb10d6f3b0d97bad2ba47ea3bae1b38a52 Mon Sep 17 00:00:00 2001
From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
Date: Thu, 27 Oct 2022 17:42:07 +0800
-Subject: [PATCH 1011/1051] wifi: mt76: testmode: add ZWDFS test mode support
+Subject: [PATCH] wifi: mt76: testmode: add ZWDFS test mode support
Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
---
@@ -18,7 +18,7 @@
10 files changed, 508 insertions(+), 1 deletion(-)
diff --git a/mt76.h b/mt76.h
-index 20577af..53b0964 100644
+index 5dfae96..65ec039 100644
--- a/mt76.h
+++ b/mt76.h
@@ -793,6 +793,15 @@ struct mt76_testmode_data {
@@ -38,10 +38,10 @@
struct mt76_vif {
diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 6511060..9ac1c46 100644
+index 6060eec..09d41b5 100644
--- a/mt76_connac_mcu.h
+++ b/mt76_connac_mcu.h
-@@ -1241,6 +1241,7 @@ enum {
+@@ -1243,6 +1243,7 @@ enum {
MCU_EXT_CMD_OFFCH_SCAN_CTRL = 0x9a,
MCU_EXT_CMD_SET_RDD_TH = 0x9d,
MCU_EXT_CMD_MURU_CTRL = 0x9f,
@@ -49,7 +49,7 @@
MCU_EXT_CMD_RX_STAT = 0xa4,
MCU_EXT_CMD_SET_SPR = 0xa8,
MCU_EXT_CMD_GROUP_PRE_CAL_INFO = 0xab,
-@@ -1252,6 +1253,7 @@ enum {
+@@ -1254,6 +1255,7 @@ enum {
MCU_EXT_CMD_SET_QOS_MAP = 0xb4,
MCU_EXT_CMD_CERT_CFG = 0xb7,
MCU_EXT_CMD_CSI_CTRL = 0xc2,
@@ -58,7 +58,7 @@
enum {
diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 38fca52..18091ec 100644
+index 17a23e3..3ba91a6 100644
--- a/mt7915/mcu.c
+++ b/mt7915/mcu.c
@@ -2759,6 +2759,7 @@ mt7915_mcu_background_chain_ctrl(struct mt7915_phy *phy,
@@ -69,10 +69,11 @@
req.band_idx = phy->mt76->band_idx;
req.scan_mode = 2;
break;
-@@ -4955,6 +4956,71 @@ int mt7915_mcu_set_amsdu_algo(struct mt7915_dev *dev, u16 wcid, u8 enable)
+@@ -4954,3 +4955,68 @@ int mt7915_mcu_set_amsdu_algo(struct mt7915_dev *dev, u16 wcid, u8 enable)
+ return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(MEC_CTRL), &req, sizeof(req), true);
}
#endif
-
++
+int mt7915_mcu_ipi_hist_ctrl(struct mt7915_phy *phy, void *data, u8 cmd, bool wait_resp)
+{
+ struct mt7915_dev *dev = phy->dev;
@@ -137,10 +138,6 @@
+
+ return 0;
+}
-+
- int mt7915_mcu_set_qos_map(struct mt7915_dev *dev, struct ieee80211_vif *vif)
- {
- #define IP_DSCP_NUM 64
diff --git a/mt7915/mcu.h b/mt7915/mcu.h
index c791c7f..066246b 100644
--- a/mt7915/mcu.h
@@ -199,10 +196,10 @@
#define OFDMA_DL BIT(0)
#define OFDMA_UL BIT(1)
diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 66e2226..0f4a0b6 100644
+index ca385b6..00f5544 100644
--- a/mt7915/mt7915.h
+++ b/mt7915/mt7915.h
-@@ -295,6 +295,7 @@ struct mt7915_phy {
+@@ -306,6 +306,7 @@ struct mt7915_phy {
struct mt76_mib_stats mib;
struct mt76_channel_state state_ts;
@@ -210,7 +207,7 @@
u8 stats_work_count;
struct list_head stats_list;
-@@ -770,6 +771,9 @@ int mt7915_vendor_amnt_sta_remove(struct mt7915_phy *phy,
+@@ -786,6 +787,9 @@ int mt7915_vendor_amnt_sta_remove(struct mt7915_phy *phy,
struct ieee80211_sta *sta);
#endif
@@ -561,7 +558,7 @@
static int
diff --git a/testmode.c b/testmode.c
-index b1986ad..b369826 100644
+index 06b10a3..d8fc5d6 100644
--- a/testmode.c
+++ b/testmode.c
@@ -26,6 +26,13 @@ const struct nla_policy mt76_tm_policy[NUM_MT76_TM_ATTRS] = {
@@ -614,7 +611,7 @@
goto out;
if (tb[MT76_TM_ATTR_TX_LENGTH]) {
-@@ -866,6 +886,9 @@ int mt76_testmode_dump(struct ieee80211_hw *hw, struct sk_buff *msg,
+@@ -868,6 +888,9 @@ int mt76_testmode_dump(struct ieee80211_hw *hw, struct sk_buff *msg,
nla_put_u8(msg, MT76_TM_ATTR_TX_RATE_MODE, td->tx_rate_mode) ||
nla_put_u8(msg, MT76_TM_ATTR_TX_RATE_SGI, td->tx_rate_sgi) ||
nla_put_u8(msg, MT76_TM_ATTR_TX_RATE_STBC, td->tx_rate_stbc) ||
diff --git a/recipes-wifi/linux-mt76/files/patches/1012-wifi-mt76-testmode-add-iBF-eBF-cal-and-cert-commands.patch b/recipes-wifi/linux-mt76/files/patches/1012-wifi-mt76-testmode-add-iBF-eBF-cal-and-cert-commands.patch
index 800a594..d1a98ab 100644
--- a/recipes-wifi/linux-mt76/files/patches/1012-wifi-mt76-testmode-add-iBF-eBF-cal-and-cert-commands.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1012-wifi-mt76-testmode-add-iBF-eBF-cal-and-cert-commands.patch
@@ -1,8 +1,8 @@
-From f96277de40ffa712ec6cb2450543611871eaf3ea Mon Sep 17 00:00:00 2001
+From 5cdc71e26586cf3a314a0971a83a00181c3e305b Mon Sep 17 00:00:00 2001
From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
Date: Thu, 15 Dec 2022 19:45:18 +0800
-Subject: [PATCH 1012/1051] wifi: mt76: testmode: add iBF/eBF cal and cert
- commands with golden
+Subject: [PATCH] wifi: mt76: testmode: add iBF/eBF cal and cert commands with
+ golden
Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
---
@@ -25,7 +25,7 @@
16 files changed, 859 insertions(+), 325 deletions(-)
diff --git a/mt76.h b/mt76.h
-index 53b0964..1455144 100644
+index 65ec039..4408ba8 100644
--- a/mt76.h
+++ b/mt76.h
@@ -755,6 +755,7 @@ struct mt76_testmode_data {
@@ -84,7 +84,7 @@
txwi[6] |= cpu_to_le32(val);
#endif
diff --git a/mt7915/main.c b/mt7915/main.c
-index aebfda8..a5e33dc 100644
+index 8ec508d..b0e11f1 100644
--- a/mt7915/main.c
+++ b/mt7915/main.c
@@ -205,46 +205,37 @@ static void mt7915_init_bitrate_mask(struct ieee80211_vif *vif)
@@ -175,7 +175,7 @@
return ret;
diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 18091ec..751e413 100644
+index 3ba91a6..0b5b3ae 100644
--- a/mt7915/mcu.c
+++ b/mt7915/mcu.c
@@ -199,6 +199,7 @@ mt7915_mcu_send_message(struct mt76_dev *mdev, struct sk_buff *skb,
@@ -468,10 +468,10 @@
[AGG_AALCR0] = 0x028,
[AGG_AWSCR0] = 0x030,
diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 0f4a0b6..43f5ea4 100644
+index 00f5544..ef92b2e 100644
--- a/mt7915/mt7915.h
+++ b/mt7915/mt7915.h
-@@ -314,7 +314,6 @@ struct mt7915_phy {
+@@ -325,7 +325,6 @@ struct mt7915_phy {
u8 spe_idx;
@@ -479,7 +479,7 @@
bool bf_ever_en;
} test;
#endif
-@@ -428,7 +427,7 @@ struct mt7915_dev {
+@@ -443,7 +442,7 @@ struct mt7915_dev {
void __iomem *dcm;
void __iomem *sku;
@@ -488,7 +488,7 @@
struct {
void *txbf_phase_cal;
void *txbf_pfmu_data;
-@@ -576,6 +575,7 @@ int mt7915_dma_reset(struct mt7915_dev *dev, bool force);
+@@ -591,6 +590,7 @@ int mt7915_dma_reset(struct mt7915_dev *dev, bool force);
int mt7915_dma_start(struct mt7915_dev *dev, bool reset, bool wed_reset);
int mt7915_txbf_init(struct mt7915_dev *dev);
void mt7915_init_txpower(struct mt7915_phy *phy);
@@ -496,14 +496,13 @@
void mt7915_reset(struct mt7915_dev *dev);
int mt7915_run(struct ieee80211_hw *hw);
int mt7915_mcu_init(struct mt7915_dev *dev);
-@@ -656,11 +656,13 @@ int mt7915_mcu_fw_log_2_host(struct mt7915_dev *dev, u8 type, u8 ctrl);
+@@ -671,10 +671,12 @@ int mt7915_mcu_fw_log_2_host(struct mt7915_dev *dev, u8 type, u8 ctrl);
int mt7915_mcu_fw_dbg_ctrl(struct mt7915_dev *dev, u32 module, u8 level);
void mt7915_mcu_rx_event(struct mt7915_dev *dev, struct sk_buff *skb);
void mt7915_mcu_exit(struct mt7915_dev *dev);
-int mt7915_tm_txbf_status_read(struct mt7915_dev *dev, struct sk_buff *skb);
-void mt7915_tm_rf_test_event(struct mt7915_dev *dev, struct sk_buff *skb);
void mt7915_mcu_wmm_pbc_work(struct work_struct *work);
- int mt7915_mcu_set_qos_map(struct mt7915_dev *dev, struct ieee80211_vif *vif);
+#ifdef CONFIG_NL80211_TESTMODE
+void mt7915_tm_rf_test_event(struct mt7915_dev *dev, struct sk_buff *skb);
@@ -512,7 +511,7 @@
static inline u16 mt7915_wtbl_size(struct mt7915_dev *dev)
{
return is_mt7915(&dev->mt76) ? MT7915_WTBL_SIZE : MT7916_WTBL_SIZE;
-@@ -794,4 +796,10 @@ enum {
+@@ -810,4 +812,10 @@ enum {
#endif
@@ -524,7 +523,7 @@
+
#endif
diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
-index 84f8fae..9e490ad 100644
+index 54daa73..02fe61a 100644
--- a/mt7915/mtk_debugfs.c
+++ b/mt7915/mtk_debugfs.c
@@ -2888,6 +2888,36 @@ mt7915_txpower_level_set(void *data, u64 val)
@@ -1851,7 +1850,7 @@
#endif
diff --git a/testmode.c b/testmode.c
-index b369826..a3e6d4a 100644
+index d8fc5d6..56b9205 100644
--- a/testmode.c
+++ b/testmode.c
@@ -196,6 +196,7 @@ mt76_testmode_alloc_skb(struct mt76_phy *phy, u32 len,
diff --git a/recipes-wifi/linux-mt76/files/patches/1015-wifi-mt76-mt7915-add-vendor-subcmd-EDCCA-ctrl-enable.patch b/recipes-wifi/linux-mt76/files/patches/1015-wifi-mt76-mt7915-add-vendor-subcmd-EDCCA-ctrl-enable.patch
index bc69731..c8d1472 100644
--- a/recipes-wifi/linux-mt76/files/patches/1015-wifi-mt76-mt7915-add-vendor-subcmd-EDCCA-ctrl-enable.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1015-wifi-mt76-mt7915-add-vendor-subcmd-EDCCA-ctrl-enable.patch
@@ -1,7 +1,7 @@
-From 3273e4f5ee8a6b68c6f2f22ec6f0aa32423e2f4c Mon Sep 17 00:00:00 2001
+From d49feab75f9fc7ffc5fd8b817b11c80251ec720c Mon Sep 17 00:00:00 2001
From: Howard Hsu <howard-yh.hsu@mediatek.com>
Date: Fri, 24 Jun 2022 11:15:45 +0800
-Subject: [PATCH 1015/1051] wifi: mt76: mt7915: add vendor subcmd EDCCA ctrl
+Subject: [PATCH] wifi: mt76: mt7915: add vendor subcmd EDCCA ctrl
enable/threshold/compensation
---
@@ -15,10 +15,10 @@
7 files changed, 264 insertions(+), 1 deletion(-)
diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 9ac1c46..012f9be 100644
+index 09d41b5..10b6133 100644
--- a/mt76_connac_mcu.h
+++ b/mt76_connac_mcu.h
-@@ -1252,6 +1252,7 @@ enum {
+@@ -1254,6 +1254,7 @@ enum {
MCU_EXT_CMD_RX_STAT_USER_CTRL = 0xb3,
MCU_EXT_CMD_SET_QOS_MAP = 0xb4,
MCU_EXT_CMD_CERT_CFG = 0xb7,
@@ -27,7 +27,7 @@
MCU_EXT_CMD_IPI_HIST_SCAN = 0xc5,
};
diff --git a/mt7915/main.c b/mt7915/main.c
-index a5e33dc..f927c5a 100644
+index b0e11f1..b1d7383 100644
--- a/mt7915/main.c
+++ b/mt7915/main.c
@@ -479,6 +479,9 @@ static int mt7915_config(struct ieee80211_hw *hw, u32 changed)
@@ -41,13 +41,14 @@
ret = mt7915_set_channel(phy);
if (ret)
diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 751e413..badc831 100644
+index 0b5b3ae..0e04fc2 100644
--- a/mt7915/mcu.c
+++ b/mt7915/mcu.c
-@@ -5038,6 +5038,78 @@ int mt7915_mcu_ipi_hist_scan(struct mt7915_phy *phy, void *data, u8 mode, bool w
+@@ -5037,3 +5037,75 @@ int mt7915_mcu_ipi_hist_scan(struct mt7915_phy *phy, void *data, u8 mode, bool w
+
return 0;
}
-
++
+int mt7915_mcu_set_edcca(struct mt7915_phy *phy, int mode, u8 *value, s8 compensation)
+{
+ static const u8 ch_band[] = {
@@ -119,10 +120,6 @@
+
+ return 0;
+}
-+
- int mt7915_mcu_set_qos_map(struct mt7915_dev *dev, struct ieee80211_vif *vif)
- {
- #define IP_DSCP_NUM 64
diff --git a/mt7915/mcu.h b/mt7915/mcu.h
index de17c57..1682c11 100644
--- a/mt7915/mcu.h
@@ -156,10 +153,10 @@
#endif
diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 2c13d3a..ea450ae 100644
+index 64cfa2e..141c151 100644
--- a/mt7915/mt7915.h
+++ b/mt7915/mt7915.h
-@@ -773,7 +773,8 @@ void mt7915_vendor_amnt_fill_rx(struct mt7915_phy *phy, struct sk_buff *skb);
+@@ -789,7 +789,8 @@ void mt7915_vendor_amnt_fill_rx(struct mt7915_phy *phy, struct sk_buff *skb);
int mt7915_vendor_amnt_sta_remove(struct mt7915_phy *phy,
struct ieee80211_sta *sta);
#endif
@@ -170,10 +167,10 @@
int mt7915_mcu_ipi_hist_scan(struct mt7915_phy *phy, void *data, u8 mode, bool wait_resp);
diff --git a/mt7915/vendor.c b/mt7915/vendor.c
-index 757aecb..3a58684 100644
+index 9e8d244..aaa0cf1 100644
--- a/mt7915/vendor.c
+++ b/mt7915/vendor.c
-@@ -63,6 +63,24 @@ phy_capa_dump_policy[NUM_MTK_VENDOR_ATTRS_PHY_CAPA_DUMP] = {
+@@ -64,6 +64,24 @@ phy_capa_dump_policy[NUM_MTK_VENDOR_ATTRS_PHY_CAPA_DUMP] = {
[MTK_VENDOR_ATTR_PHY_CAPA_DUMP_MAX_SUPPORTED_STA] = { .type = NLA_U16 },
};
@@ -198,7 +195,7 @@
struct csi_null_tone {
u8 start;
u8 end;
-@@ -1036,6 +1054,108 @@ mt7915_vendor_phy_capa_ctrl_dump(struct wiphy *wiphy, struct wireless_dev *wdev,
+@@ -1172,6 +1190,108 @@ mt7915_vendor_phy_capa_ctrl_dump(struct wiphy *wiphy, struct wireless_dev *wdev,
return len;
}
@@ -307,7 +304,7 @@
static const struct wiphy_vendor_command mt7915_vendor_commands[] = {
{
.info = {
-@@ -1104,6 +1224,18 @@ static const struct wiphy_vendor_command mt7915_vendor_commands[] = {
+@@ -1240,6 +1360,18 @@ static const struct wiphy_vendor_command mt7915_vendor_commands[] = {
.dumpit = mt7915_vendor_phy_capa_ctrl_dump,
.policy = phy_capa_ctrl_policy,
.maxattr = MTK_VENDOR_ATTR_PHY_CAPA_CTRL_MAX,
@@ -327,7 +324,7 @@
};
diff --git a/mt7915/vendor.h b/mt7915/vendor.h
-index 34dd7d0..284994a 100644
+index e58884c..c8d30b5 100644
--- a/mt7915/vendor.h
+++ b/mt7915/vendor.h
@@ -3,6 +3,7 @@
diff --git a/recipes-wifi/linux-mt76/files/patches/1026-wifi-mt76-mt7915-disable-SW-ACI-by-default.patch b/recipes-wifi/linux-mt76/files/patches/1026-wifi-mt76-mt7915-disable-SW-ACI-by-default.patch
index 2e4209c..e96992e 100644
--- a/recipes-wifi/linux-mt76/files/patches/1026-wifi-mt76-mt7915-disable-SW-ACI-by-default.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1026-wifi-mt76-mt7915-disable-SW-ACI-by-default.patch
@@ -1,7 +1,7 @@
-From 576714a8019a3be8e4b7a2e59829b9af3d3e125f Mon Sep 17 00:00:00 2001
+From 7f50bd85cb6e13254fa6e72667e1b34599c64f27 Mon Sep 17 00:00:00 2001
From: Howard Hsu <howard-yh.hsu@mediatek.com>
Date: Fri, 24 Feb 2023 16:29:42 +0800
-Subject: [PATCH 1026/1051] wifi: mt76: mt7915: disable SW-ACI by default
+Subject: [PATCH] wifi: mt76: mt7915: disable SW-ACI by default
Support to enable/disable SW-ACI by module parameter "sw_aci_enable".
SW-ACI feature is disable by default.
@@ -13,7 +13,7 @@
4 files changed, 29 insertions(+), 9 deletions(-)
diff --git a/mt7915/main.c b/mt7915/main.c
-index 4e1a430..3db1c0b 100644
+index 9fa01e9..05076b3 100644
--- a/mt7915/main.c
+++ b/mt7915/main.c
@@ -8,6 +8,10 @@
@@ -39,13 +39,14 @@
if (phy != &dev->phy) {
diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 2e6eefc..7039933 100644
+index 8e895b3..236f666 100644
--- a/mt7915/mcu.c
+++ b/mt7915/mcu.c
-@@ -5223,6 +5223,21 @@ int mt7915_mcu_get_edcca(struct mt7915_phy *phy, u8 mode, s8 *value)
+@@ -5222,3 +5222,18 @@ int mt7915_mcu_get_edcca(struct mt7915_phy *phy, u8 mode, s8 *value)
+
return 0;
}
-
++
+int mt7915_mcu_sw_aci_set(struct mt7915_dev *dev, bool val)
+{
+#define SWLNA_ENABLE 6
@@ -60,15 +61,11 @@
+ return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(SWLNA_ACI_CTRL), &req,
+ sizeof(req), NULL);
+}
-+
- int mt7915_mcu_set_qos_map(struct mt7915_dev *dev, struct ieee80211_vif *vif)
- {
- #define IP_DSCP_NUM 64
diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 804d554..498674d 100644
+index 82d374e..3fa3257 100644
--- a/mt7915/mt7915.h
+++ b/mt7915/mt7915.h
-@@ -785,6 +785,7 @@ int mt7915_vendor_amnt_sta_remove(struct mt7915_phy *phy,
+@@ -801,6 +801,7 @@ int mt7915_vendor_amnt_sta_remove(struct mt7915_phy *phy,
#endif
int mt7915_mcu_set_edcca(struct mt7915_phy *phy, int mode, u8 *value, s8 compensation);
int mt7915_mcu_get_edcca(struct mt7915_phy *phy, u8 mode, s8 *value);
@@ -77,7 +74,7 @@
int mt7915_mcu_ipi_hist_scan(struct mt7915_phy *phy, void *data, u8 mode, bool wait_resp);
diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
-index 8f2f496..ad7abda 100644
+index 3e84d75..d932360 100644
--- a/mt7915/mtk_debugfs.c
+++ b/mt7915/mtk_debugfs.c
@@ -3773,16 +3773,12 @@ static int mt7915_show_eeprom_mode(struct seq_file *s, void *data)
diff --git a/recipes-wifi/linux-mt76/files/patches/1040-wifi-mt76-mt7915-support-scs-feature.patch b/recipes-wifi/linux-mt76/files/patches/1040-wifi-mt76-mt7915-support-scs-feature.patch
index 9163c75..e826d19 100644
--- a/recipes-wifi/linux-mt76/files/patches/1040-wifi-mt76-mt7915-support-scs-feature.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1040-wifi-mt76-mt7915-support-scs-feature.patch
@@ -1,7 +1,7 @@
-From 0bb9fb5e89b2891ab7b9f9216ae5ef73a9210c25 Mon Sep 17 00:00:00 2001
+From 28300199dbd301df08b570d527aeb76adac50343 Mon Sep 17 00:00:00 2001
From: Howard Hsu <howard-yh.hsu@mediatek.com>
Date: Wed, 6 Dec 2023 08:53:03 +0800
-Subject: [PATCH 1040/1051] wifi: mt76: mt7915: support scs feature
+Subject: [PATCH 1040/1041] wifi: mt76: mt7915: support scs feature
Add support scs feature for connac2 codebase. This commit includes three
parts.
@@ -29,7 +29,7 @@
9 files changed, 188 insertions(+)
diff --git a/mt76.h b/mt76.h
-index cff22f5..7ffba7d 100644
+index 86e4a60..8450d3b 100644
--- a/mt76.h
+++ b/mt76.h
@@ -311,6 +311,7 @@ struct mt76_sta_stats {
@@ -49,10 +49,10 @@
enum mt76_wcid_flags {
diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 94fcf32..247b520 100644
+index dc2a47d..8b7fe87 100644
--- a/mt76_connac_mcu.h
+++ b/mt76_connac_mcu.h
-@@ -1236,6 +1236,7 @@ enum {
+@@ -1238,6 +1238,7 @@ enum {
MCU_EXT_CMD_SET_RDD_PATTERN = 0x7d,
MCU_EXT_CMD_MWDS_SUPPORT = 0x80,
MCU_EXT_CMD_SET_SER_TRIGGER = 0x81,
@@ -61,10 +61,10 @@
MCU_EXT_CMD_FW_DBG_CTRL = 0x95,
MCU_EXT_CMD_OFFCH_SCAN_CTRL = 0x9a,
diff --git a/mt7915/init.c b/mt7915/init.c
-index 0f8a772..2196d5f 100644
+index 4dbb84a..ec61911 100644
--- a/mt7915/init.c
+++ b/mt7915/init.c
-@@ -1213,6 +1213,7 @@ int mt7915_register_device(struct mt7915_dev *dev)
+@@ -1219,6 +1219,7 @@ int mt7915_register_device(struct mt7915_dev *dev)
spin_lock_init(&dev->phy.stats_lock);
INIT_WORK(&dev->rc_work, mt7915_mac_sta_rc_work);
INIT_DELAYED_WORK(&dev->mphy.mac_work, mt7915_mac_work);
@@ -116,7 +116,7 @@
wiphy_name(dev->mt76.hw->wiphy));
}
diff --git a/mt7915/main.c b/mt7915/main.c
-index 3db1c0b..da998e1 100644
+index 05076b3..ba009e6 100644
--- a/mt7915/main.c
+++ b/mt7915/main.c
@@ -89,12 +89,24 @@ int mt7915_run(struct ieee80211_hw *hw)
@@ -153,13 +153,14 @@
mt7915_mcu_set_mac(dev, dev->phy.mt76->band_idx, false, false);
}
diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index ef9f0ce..762c035 100644
+index 052ec99..297ded7 100644
--- a/mt7915/mcu.c
+++ b/mt7915/mcu.c
-@@ -5239,6 +5239,124 @@ int mt7915_mcu_sw_aci_set(struct mt7915_dev *dev, bool val)
+@@ -5238,3 +5238,121 @@ int mt7915_mcu_sw_aci_set(struct mt7915_dev *dev, bool val)
+ return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(SWLNA_ACI_CTRL), &req,
sizeof(req), NULL);
}
-
++
+int mt7915_mcu_set_scs_en(struct mt7915_phy *phy, u8 enable)
+{
+ struct mt7915_dev *dev = phy->dev;
@@ -277,10 +278,6 @@
+ if (scs_enable_flag)
+ ieee80211_queue_delayed_work(mt76_hw(dev), &dev->scs_work, HZ);
+}
-+
- int mt7915_mcu_set_qos_map(struct mt7915_dev *dev, struct ieee80211_vif *vif)
- {
- #define IP_DSCP_NUM 64
diff --git a/mt7915/mcu.h b/mt7915/mcu.h
index 3089fb6..742a785 100644
--- a/mt7915/mcu.h
@@ -295,10 +292,10 @@
+};
#endif
diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 3170aca..696db7b 100644
+index c8f9ed5..6b27be9 100644
--- a/mt7915/mt7915.h
+++ b/mt7915/mt7915.h
-@@ -272,6 +272,15 @@ struct mt7915_air_monitor_ctrl {
+@@ -283,6 +283,15 @@ struct mt7915_air_monitor_ctrl {
};
#endif
@@ -314,7 +311,7 @@
struct mt7915_phy {
struct mt76_phy *mt76;
struct mt7915_dev *dev;
-@@ -346,6 +355,7 @@ struct mt7915_phy {
+@@ -361,6 +370,7 @@ struct mt7915_phy {
struct mt7915_air_monitor_ctrl amnt_ctrl;
#endif
@@ -322,7 +319,7 @@
};
#ifdef MTK_DEBUG
-@@ -478,6 +488,8 @@ struct mt7915_dev {
+@@ -493,6 +503,8 @@ struct mt7915_dev {
} adie[ADIE_MAX_CNT];
#endif
@@ -331,7 +328,7 @@
bool wmm_pbc_enable;
struct work_struct wmm_pbc_work;
u32 adie_type;
-@@ -805,6 +817,8 @@ int mt7915_mcu_sw_aci_set(struct mt7915_dev *dev, bool val);
+@@ -821,6 +833,8 @@ int mt7915_mcu_sw_aci_set(struct mt7915_dev *dev, bool val);
int mt7915_mcu_ipi_hist_ctrl(struct mt7915_phy *phy, void *data, u8 cmd, bool wait_resp);
int mt7915_mcu_ipi_hist_scan(struct mt7915_phy *phy, void *data, u8 mode, bool wait_resp);
int mt7915_mcu_enable_obss_spr(struct mt7915_phy *phy, u8 action, u8 val);
@@ -341,7 +338,7 @@
#ifdef MTK_DEBUG
int mt7915_mtk_init_debugfs(struct mt7915_phy *phy, struct dentry *dir);
diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
-index dad5ed7..0953223 100644
+index c8efd26..e60dc85 100644
--- a/mt7915/mtk_debugfs.c
+++ b/mt7915/mtk_debugfs.c
@@ -3820,6 +3820,29 @@ mt7915_sr_enable_set(void *data, u64 val)
diff --git a/recipes-wifi/linux-mt76/files/patches/1041-wifi-mt76-mt7915-support-thermal-recal-debug-commnad.patch b/recipes-wifi/linux-mt76/files/patches/1041-wifi-mt76-mt7915-support-thermal-recal-debug-commnad.patch
index c682fc5..4576a2c 100644
--- a/recipes-wifi/linux-mt76/files/patches/1041-wifi-mt76-mt7915-support-thermal-recal-debug-commnad.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1041-wifi-mt76-mt7915-support-thermal-recal-debug-commnad.patch
@@ -1,7 +1,7 @@
-From d7dce21af9906258a21e0ff73349900f41c46bbd Mon Sep 17 00:00:00 2001
+From 9fd80f6b724ba3f7272da8856e3b3d07d04dadb8 Mon Sep 17 00:00:00 2001
From: Howard Hsu <howard-yh.hsu@mediatek.com>
Date: Thu, 21 Dec 2023 20:35:36 +0800
-Subject: [PATCH 1041/1051] wifi: mt76: mt7915: support thermal recal debug
+Subject: [PATCH 1041/1041] wifi: mt76: mt7915: support thermal recal debug
commnad
Add thermal recal debug command:
@@ -21,10 +21,10 @@
4 files changed, 35 insertions(+)
diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 247b520..e445046 100644
+index 8b7fe87..c34c6e6 100644
--- a/mt76_connac_mcu.h
+++ b/mt76_connac_mcu.h
-@@ -1232,6 +1232,7 @@ enum {
+@@ -1234,6 +1234,7 @@ enum {
MCU_EXT_CMD_RED_ENABLE = 0x68,
MCU_EXT_CMD_PKT_BUDGET_CTRL = 0x6c,
MCU_EXT_CMD_CP_SUPPORT = 0x75,
@@ -33,13 +33,14 @@
MCU_EXT_CMD_SET_RDD_PATTERN = 0x7d,
MCU_EXT_CMD_MWDS_SUPPORT = 0x80,
diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 762c035..87409a4 100644
+index 297ded7..b66e5ea 100644
--- a/mt7915/mcu.c
+++ b/mt7915/mcu.c
-@@ -5357,6 +5357,21 @@ void mt7915_mcu_scs_sta_poll(struct work_struct *work)
+@@ -5356,3 +5356,18 @@ void mt7915_mcu_scs_sta_poll(struct work_struct *work)
+ if (scs_enable_flag)
ieee80211_queue_delayed_work(mt76_hw(dev), &dev->scs_work, HZ);
}
-
++
+int mt7915_mcu_thermal_debug(struct mt7915_dev *dev, u8 mode, u8 action)
+{
+ struct {
@@ -54,15 +55,11 @@
+ return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(THERMAL_DEBUG), &req,
+ sizeof(req), true);
+}
-+
- int mt7915_mcu_set_qos_map(struct mt7915_dev *dev, struct ieee80211_vif *vif)
- {
- #define IP_DSCP_NUM 64
diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 696db7b..2981e5a 100644
+index 6b27be9..496ccd9 100644
--- a/mt7915/mt7915.h
+++ b/mt7915/mt7915.h
-@@ -819,6 +819,7 @@ int mt7915_mcu_ipi_hist_scan(struct mt7915_phy *phy, void *data, u8 mode, bool w
+@@ -835,6 +835,7 @@ int mt7915_mcu_ipi_hist_scan(struct mt7915_phy *phy, void *data, u8 mode, bool w
int mt7915_mcu_enable_obss_spr(struct mt7915_phy *phy, u8 action, u8 val);
int mt7915_mcu_set_scs_en(struct mt7915_phy *phy, u8 enable);
void mt7915_mcu_scs_sta_poll(struct work_struct *work);
@@ -71,7 +68,7 @@
#ifdef MTK_DEBUG
int mt7915_mtk_init_debugfs(struct mt7915_phy *phy, struct dentry *dir);
diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
-index 0953223..53294c1 100644
+index e60dc85..0677495 100644
--- a/mt7915/mtk_debugfs.c
+++ b/mt7915/mtk_debugfs.c
@@ -3843,6 +3843,22 @@ mt7915_scs_enable_set(void *data, u64 val)
diff --git a/recipes-wifi/linux-mt76/files/patches/1052-wifi-mt76-mt7915-Clear-private-driver-data-in-case-o.patch b/recipes-wifi/linux-mt76/files/patches/1052-wifi-mt76-mt7915-Clear-private-driver-data-in-case-o.patch
new file mode 100644
index 0000000..2f6e452
--- /dev/null
+++ b/recipes-wifi/linux-mt76/files/patches/1052-wifi-mt76-mt7915-Clear-private-driver-data-in-case-o.patch
@@ -0,0 +1,28 @@
+From f92bc600352365982f4c674de61454dfdcba6bcd Mon Sep 17 00:00:00 2001
+From: Rex Lu <rex.lu@mediatek.com>
+Date: Fri, 5 Jul 2024 17:50:29 +0800
+Subject: [PATCH] wifi: mt76: mt7915: Clear private driver data in case of
+ reuse
+
+Signed-off-by: Rex Lu <rex.lu@mediatek.com>
+---
+ mt7915/main.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/mt7915/main.c b/mt7915/main.c
+index 6912ea7..4a4c372 100644
+--- a/mt7915/main.c
++++ b/mt7915/main.c
+@@ -230,6 +230,9 @@ int mt7915_init_vif(struct mt7915_phy *phy, struct ieee80211_vif *vif, bool bf_e
+ bool ext_phy = phy != &dev->phy;
+ int idx, ret = 0;
+
++ /* Clear private driver data in case of reuse */
++ memset(mvif, 0, sizeof(struct mt7915_vif));
++
+ /* To differentiate the mac address of TXD and TXCMD interface */
+ vif->addr[0] |= bf_en;
+
+--
+2.18.0
+
diff --git a/recipes-wifi/linux-mt76/files/patches/patches.inc b/recipes-wifi/linux-mt76/files/patches/patches.inc
index 6a62f1f..f5d6773 100644
--- a/recipes-wifi/linux-mt76/files/patches/patches.inc
+++ b/recipes-wifi/linux-mt76/files/patches/patches.inc
@@ -74,6 +74,7 @@
file://1049-wifi-mt76-mt7915-add-foolproof-mechanism-for-ZWDFS-d.patch \
file://1050-mtk-wifi-mt76-mt7915-assign-DEAUTH-to-ALTX-queue-for.patch \
file://1051-wifi-mt76-mt7915-set-channel-after-sta-is-associated.patch \
+ file://1052-wifi-mt76-mt7915-Clear-private-driver-data-in-case-o.patch \
file://2000-wifi-mt76-mt7915-wed-add-wed-tx-support.patch \
file://2001-wifi-mt76-mt7915-wed-add-wds-support-when-wed-is-ena.patch \
file://2002-wifi-mt76-mt7915-wed-add-fill-receive-path-to-report.patch \