[rdkb][common][bsp][Refactor and sync wifi from openwrt]
[Description]
387b6ecf [MAC80211][WiFi6][core][Add exported function for SoftMAC driver to get QoS map]
4e3cb5c0 [MAC80211][Rebase Patch][Fix inconsistent QoS mapping between SW and HW]
03f284d9 [MAC80211][WiFi6][mt76][Fix inconsistent QoS mapping between SW and HW]
cdd2ea74 [MAC80211][WiFi6][mt76][Fix rcu stall issue in testmode]
8f684af1 [MAC80211][Release][Add commit revision for Filogic 880/860 release]
bf9808d3 [MAC80211][WiFi6][mt76][Refactor add dummy HW offload of IEEE 802.11 fragmentation]
00b8ee9c [MAC80211][misc][Update Release Information v2]
efcc36f2 [MAC80211][misc][Update Release Information]
8249196d [MAC80211][WiFi7][misc][Add UCI radio disabled for testmode]
[Release-log]
Change-Id: I0e39f84703dc98e6f25cf7d59e98729d33cc6f12
diff --git a/recipes-wifi/linux-mt76/files/patches/1008-wifi-mt76-testmode-additional-supports.patch b/recipes-wifi/linux-mt76/files/patches/1008-wifi-mt76-testmode-additional-supports.patch
index cb4e57b..fa6094e 100644
--- a/recipes-wifi/linux-mt76/files/patches/1008-wifi-mt76-testmode-additional-supports.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1008-wifi-mt76-testmode-additional-supports.patch
@@ -1,14 +1,14 @@
-From 4f2e94943abd5d7e9d70cd54a265d6031a0a7f98 Mon Sep 17 00:00:00 2001
+From e6c4c7343a54ef607d8ceafa4615a32165c121fd Mon Sep 17 00:00:00 2001
From: Shayne Chen <shayne.chen@mediatek.com>
Date: Thu, 21 Apr 2022 15:43:19 +0800
-Subject: [PATCH 1008/1053] wifi: mt76: testmode: additional supports
+Subject: [PATCH] wifi: mt76: testmode: additional supports
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
---
dma.c | 3 +-
mac80211.c | 12 +
- mt76.h | 110 +++-
+ mt76.h | 119 ++++-
mt76_connac_mcu.c | 4 +
mt76_connac_mcu.h | 2 +
mt7915/eeprom.c | 2 +-
@@ -26,7 +26,7 @@
testmode.h | 79 +++
tools/fields.c | 90 +++-
tx.c | 3 +-
- 20 files changed, 2064 insertions(+), 169 deletions(-)
+ 20 files changed, 2073 insertions(+), 169 deletions(-)
diff --git a/dma.c b/dma.c
index ccdd564..bc8afcf 100644
@@ -73,7 +73,7 @@
static const struct ieee80211_channel mt76_channels_6ghz[] = {
diff --git a/mt76.h b/mt76.h
-index fe5b136..3fe18cd 100644
+index fe5b136..a7d424f 100644
--- a/mt76.h
+++ b/mt76.h
@@ -707,6 +707,21 @@ struct mt76_testmode_ops {
@@ -156,7 +156,7 @@
u32 tx_pending;
u32 tx_queued;
u16 tx_queued_limit;
-@@ -1348,6 +1387,59 @@ static inline bool mt76_testmode_enabled(struct mt76_phy *phy)
+@@ -1348,6 +1387,68 @@ static inline bool mt76_testmode_enabled(struct mt76_phy *phy)
#endif
}
@@ -172,6 +172,15 @@
+ list);
+}
+
++static inline struct mt76_wcid *
++mt76_testmode_next_entry(struct mt76_phy *phy, struct mt76_wcid *wcid)
++{
++ if (wcid == &phy->dev->global_wcid)
++ return NULL;
++
++ return list_next_entry(wcid, list);
++}
++
+static inline struct mt76_testmode_entry_data *
+mt76_testmode_entry_data(struct mt76_phy *phy, struct mt76_wcid *wcid)
+{
@@ -184,13 +193,13 @@
+ phy->hw->sta_data_size);
+}
+
-+#define mt76_tm_for_each_entry(phy, wcid, ed) \
-+ for (wcid = mt76_testmode_first_entry(phy), \
-+ ed = mt76_testmode_entry_data(phy, wcid); \
-+ ((phy->test.aid && \
++#define mt76_tm_for_each_entry(phy, wcid, ed) \
++ for (wcid = mt76_testmode_first_entry(phy), \
++ ed = mt76_testmode_entry_data(phy, wcid); \
++ ((phy->test.aid && \
+ !list_entry_is_head(wcid, &phy->test.tm_entry_list, list)) || \
+ (!phy->test.aid && wcid == &phy->dev->global_wcid)) && ed; \
-+ wcid = list_next_entry(wcid, list), \
++ wcid = mt76_testmode_next_entry(phy, wcid), \
+ ed = mt76_testmode_entry_data(phy, wcid))
+#endif
+
@@ -216,7 +225,7 @@
static inline bool mt76_is_testmode_skb(struct mt76_dev *dev,
struct sk_buff *skb,
struct ieee80211_hw **hw)
-@@ -1358,7 +1450,8 @@ static inline bool mt76_is_testmode_skb(struct mt76_dev *dev,
+@@ -1358,7 +1459,8 @@ static inline bool mt76_is_testmode_skb(struct mt76_dev *dev,
for (i = 0; i < ARRAY_SIZE(dev->phys); i++) {
struct mt76_phy *phy = dev->phys[i];
@@ -226,7 +235,7 @@
*hw = dev->phys[i]->hw;
return true;
}
-@@ -1460,7 +1553,8 @@ int mt76_testmode_cmd(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -1460,7 +1562,8 @@ int mt76_testmode_cmd(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
int mt76_testmode_dump(struct ieee80211_hw *hw, struct sk_buff *skb,
struct netlink_callback *cb, void *data, int len);
int mt76_testmode_set_state(struct mt76_phy *phy, enum mt76_testmode_state state);
@@ -259,7 +268,7 @@
return;
diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 75cb4e9..0972010 100644
+index 22d477f..0f408d9 100644
--- a/mt76_connac_mcu.h
+++ b/mt76_connac_mcu.h
@@ -1023,6 +1023,7 @@ enum {
@@ -275,9 +284,9 @@
/* for vendor csi and air monitor */
MCU_EXT_CMD_SMESH_CTRL = 0xae,
+ MCU_EXT_CMD_RX_STAT_USER_CTRL = 0xb3,
+ MCU_EXT_CMD_SET_QOS_MAP = 0xb4,
MCU_EXT_CMD_CERT_CFG = 0xb7,
MCU_EXT_CMD_CSI_CTRL = 0xc2,
- };
diff --git a/mt7915/eeprom.c b/mt7915/eeprom.c
index bfdbc15..f4876fe 100644
--- a/mt7915/eeprom.c
@@ -292,10 +301,10 @@
return ret;
}
diff --git a/mt7915/init.c b/mt7915/init.c
-index fc42974..439403f 100644
+index 0350250..5c4aa1e 100644
--- a/mt7915/init.c
+++ b/mt7915/init.c
-@@ -726,7 +726,7 @@ static void mt7915_init_work(struct work_struct *work)
+@@ -727,7 +727,7 @@ static void mt7915_init_work(struct work_struct *work)
struct mt7915_dev *dev = container_of(work, struct mt7915_dev,
init_work);
@@ -395,7 +404,7 @@
goto out;
diff --git a/mt7915/main.c b/mt7915/main.c
-index f698b24..6415e84 100644
+index 8835cda..e53754c 100644
--- a/mt7915/main.c
+++ b/mt7915/main.c
@@ -238,7 +238,7 @@ static int mt7915_add_interface(struct ieee80211_hw *hw,
@@ -408,7 +417,7 @@
mvif->mt76.wmm_idx += 2;
diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 63fb826..233411c 100644
+index 0d1bab1..05919e9 100644
--- a/mt7915/mcu.c
+++ b/mt7915/mcu.c
@@ -478,6 +478,11 @@ mt7915_mcu_rx_ext_event(struct mt7915_dev *dev, struct sk_buff *skb)
@@ -567,7 +576,7 @@
[AGG_PCR0] = 0x040,
[AGG_ACR0] = 0x054,
diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 0eca040..1846e2f 100644
+index 136e89f..37abf56 100644
--- a/mt7915/mt7915.h
+++ b/mt7915/mt7915.h
@@ -304,11 +304,15 @@ struct mt7915_phy {
@@ -618,8 +627,8 @@
void mt7915_mcu_exit(struct mt7915_dev *dev);
+int mt7915_tm_txbf_status_read(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);
- static inline u16 mt7915_wtbl_size(struct mt7915_dev *dev)
diff --git a/mt7915/regs.h b/mt7915/regs.h
index 8bb6a9f..1236da9 100644
--- a/mt7915/regs.h