[rdkb][common][bsp][Refactor and sync wifi from openwrt]

[Description]
efe66c5 [mac80211][rebase patches][fix build error]
af9a941 [MAC80211][rebase patches][Filogic 830 MP3.0 release update]
e523662 [MAC80211][Rebase Patches][Fix git am fail]
b79cb34 [MAC80211][core][Fix max_bssid_indicator variable]
8b7450b [MAC80211][misc][Refactor patches]
ae844f0 [MAC80211][mt76][Fix incorrect HE TX GI report]
0ae3b98 [MAC80211][misc][Refactor patch]
11aed5b [MAC80211][mt76][Fix the beamformer issue]
1901608 [[MAC80211][misc] increase beacon loss count from 7 to 20]
6a39cde [mac80211][mt76][stop dma tx in ser flow]
c5c7657 [MAC80211][mt76][Update bss offload size]
02c6169 [MAC80211][mt76][Fix low throughput on software path with wed enable]

[Release-log]

Change-Id: Ifcf9d01cc294554ed954479fce579d0810ad43e5
diff --git a/recipes-wifi/linux-mac80211/files/patches/subsys/mtk-0012-mac80211-mtk-fix-tx-amsdu-aggregation.patch b/recipes-wifi/linux-mac80211/files/patches/subsys/mtk-0012-mac80211-mtk-fix-tx-amsdu-aggregation.patch
new file mode 100644
index 0000000..57c5d93
--- /dev/null
+++ b/recipes-wifi/linux-mac80211/files/patches/subsys/mtk-0012-mac80211-mtk-fix-tx-amsdu-aggregation.patch
@@ -0,0 +1,55 @@
+From 21dcc00df24dc33301a3ad9749ddcb9f3b9d6d47 Mon Sep 17 00:00:00 2001
+From: TomLiu <tomml.liu@mediatek.com>
+Date: Wed, 14 Dec 2022 00:26:50 -0800
+Subject: [PATCH 12/17] mac80211: mtk: fix tx amsdu aggregation
+
+---
+ include/net/mac80211.h | 7 +++++++
+ net/mac80211/agg-tx.c  | 6 ++++--
+ 2 files changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/include/net/mac80211.h b/include/net/mac80211.h
+index 587a1d6..2c40833 100644
+--- a/include/net/mac80211.h
++++ b/include/net/mac80211.h
+@@ -2668,6 +2668,13 @@ static inline void _ieee80211_hw_set(struct ieee80211_hw *hw,
+ }
+ #define ieee80211_hw_set(hw, flg)	_ieee80211_hw_set(hw, IEEE80211_HW_##flg)
+ 
++static inline void _ieee80211_hw_clear(struct ieee80211_hw *hw,
++				     enum ieee80211_hw_flags flg)
++{
++	return __clear_bit(flg, hw->flags);
++}
++#define ieee80211_hw_clear(hw, flg)	_ieee80211_hw_clear(hw, IEEE80211_HW_##flg)
++
+ /**
+  * struct ieee80211_scan_request - hw scan request
+  *
+diff --git a/net/mac80211/agg-tx.c b/net/mac80211/agg-tx.c
+index cb00ab3..6992c1f 100644
+--- a/net/mac80211/agg-tx.c
++++ b/net/mac80211/agg-tx.c
+@@ -66,7 +66,8 @@ static void ieee80211_send_addba_request(struct ieee80211_sub_if_data *sdata,
+ 	struct ieee80211_local *local = sdata->local;
+ 	struct sk_buff *skb;
+ 	struct ieee80211_mgmt *mgmt;
+-	u16 capab;
++	u16 capab = 0;
++	bool amsdu = ieee80211_hw_check(&local->hw, SUPPORTS_AMSDU_IN_AMPDU);
+ 
+ 	skb = dev_alloc_skb(sizeof(*mgmt) + local->hw.extra_tx_headroom);
+ 
+@@ -95,7 +96,8 @@ static void ieee80211_send_addba_request(struct ieee80211_sub_if_data *sdata,
+ 	mgmt->u.action.u.addba_req.action_code = WLAN_ACTION_ADDBA_REQ;
+ 
+ 	mgmt->u.action.u.addba_req.dialog_token = dialog_token;
+-	capab = IEEE80211_ADDBA_PARAM_AMSDU_MASK;
++	if (amsdu)
++		capab = IEEE80211_ADDBA_PARAM_AMSDU_MASK;
+ 	capab |= IEEE80211_ADDBA_PARAM_POLICY_MASK;
+ 	capab |= u16_encode_bits(tid, IEEE80211_ADDBA_PARAM_TID_MASK);
+ 	capab |= u16_encode_bits(agg_size, IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK);
+-- 
+2.18.0
+