[][MAC80211][misc][Fix mt7986 build fail on backport v6.1]
[Description]
Fix mt7986 build fail on backport v6.1
Update mt7915/mt7986/mt7915 gloden fimware
[Release-log]
N/A
Change-Id: Ic5c2247e206cb5221e5472421831b136887b7e9c
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/6930574
diff --git a/autobuild_mac80211_release/package/kernel/mac80211_dev/patches/subsys/910-mac80211-mtk-fix-tx-amsdu-aggregation.patch b/autobuild_mac80211_release/package/kernel/mac80211_dev/patches/subsys/910-mac80211-mtk-fix-tx-amsdu-aggregation.patch
new file mode 100644
index 0000000..aba73e7
--- /dev/null
+++ b/autobuild_mac80211_release/package/kernel/mac80211_dev/patches/subsys/910-mac80211-mtk-fix-tx-amsdu-aggregation.patch
@@ -0,0 +1,55 @@
+From 63eb14a66a1ed384a0bb952b9b50fe81a859690a Mon Sep 17 00:00:00 2001
+From: TomLiu <tomml.liu@mediatek.com>
+Date: Wed, 14 Dec 2022 00:26:50 -0800
+Subject: [PATCH 910/912] 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 4485cfa..5429de0 100644
+--- a/include/net/mac80211.h
++++ b/include/net/mac80211.h
+@@ -2851,6 +2851,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 1f46561..318c71e 100755
+--- 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.36.1
+