[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