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

[Description]
ced8594f [MAC80211][WiFi6][Misc][Fix the MT76 WiFi6 Makefile]
7221999e [MAC80211][WiFi7][Misc][Correct the MAC80211 WiFi7 Makefile.]
9d87794a [MAC80211][WiFi7][Misc][Correct the MT76 WiFi7 Makefile.]
ff24e1b2 [openwrt-24][Mac80211][Fix patch conflict with upstream openwrt]
3a6c13e2 [mac80211][misc][fix patch fail due to openwrt update]
05763faa [MAC80211][WiFi7][misc][fix patch failed of wifi-scripts]
f34fd014 [mac80211][misc][fix patch fail due to openwrt update]
f6796660 [openwrt-24][Release][Fix build fail of Wi-Fi7 MT76]
7076d96c [MAC80211][WiFi7][Misc][Fix release build fail because of mt76 version upgradation]
1f748b17 [mac80211][misc][fix patch fail due to openwrt update]
95ba6722 [mac80211][misc][fix patch fail due to openwrt update]
17680d7f [MAC80211][WiFi7][misc][Rename eeprom of eFEM variants]
b97cefa1 [MAC80211][WiFi7][app][Add Griffin support for atenl/iwpriv]
6de718a4 [MAC80211][WiFi7][misc][fix wifi-scripts patch failed]
9f1ace86 [MAC80211][WiFi7][misc][fix hostapd Makefile patch]
e4d0d28e [MAC80211][Misc][Add MT7990 Firmware OpenWrt config]
f3a8a8f7 [MAC80211][Release][Fix build fail of Wi-Fi6 MT76]
dabe8eae [openwrt-24][common][bsp][Fix line ending]
6d438a9d [openwrt-24][common][bsp][Use zstd to compress rootfs debug symbols for unified autobuild]
c268e47e [openwrt][common][bsp][Change SMC ID of wdt nonrst reg of reset-boot-count to 0x570]
c6819fbc [openwrt-24][Release][Update release note for Filogic 880 alpha release]
6897b4de [openwrt-24][common][bsp][Adjust unified autobuild for internal build detection]
fb9b9762 [MAC80211][WiFi6/7][app][Add ext eeprom write back cmd support]
d42b42a3 [openwrt-24][common][bsp][Add kernel6.6 Filogic880 BE19000/BE14000]
3806f047 [MAC80211][misc][Add Bpi-R4 support]
ddbda753 [MAC80211][WiFi7][Misc][Fix build fail because of mt76 version upgradation]
90959b08 [MAC80211][WiFi6][mt76][Rebase mt76 pathes]
728a3362 [MAC80211][WiFi6][mt76][Refactor Qos Map]
b46277b5 [MAC80211][WiFi6][mt76][Fix add ba issue on tid not equal to zero]
c084ee8b [MAC80211][WiFi7][mt76][split mt76 Makefile patch]
bbaec094 [MAC80211][Release][Update Filogic 830/820/630 firmware]
5ce2eece [MAC80211][wifi6][MT76][Fix build fail]
5ac1121f [MAC80211][wifi6][MT76][Fix mt76 version to 2024-07-13]
485f92b1 [MAC80211][WiFi7][misc][synchronize PP bitmap when association]
84db8818 [MAC80211][WiFi6/7][app][Add ATETXNSS in iwpriv wrapper]
cc5a4605 [MAC80211][WiFi7][mt76][fix patch failed of Makefile]

[Release-log]

Change-Id: I06704c04c4b5571af4ffd189d636c1fc9f0567fd
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0119-mtk-mt76-mt7996-fix-set-beacon-mcu-command.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0119-mtk-mt76-mt7996-fix-set-beacon-mcu-command.patch
new file mode 100644
index 0000000..1b39d7f
--- /dev/null
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0119-mtk-mt76-mt7996-fix-set-beacon-mcu-command.patch
@@ -0,0 +1,79 @@
+From 50cf21c286aa55676fa5a341781c5e72aa4758f5 Mon Sep 17 00:00:00 2001
+From: Michael-CY Lee <michael-cy.lee@mediatek.com>
+Date: Tue, 14 May 2024 10:52:43 +0800
+Subject: [PATCH 119/223] mtk: mt76: mt7996: fix set beacon mcu command
+
+When stopping AP, mac80211 frees beacon template before it calls
+driver's stop_ap operation. In other words, on the path of stopping
+AP, ieee80211_beacon_get_template() must returns NULL in
+mt7996_mcu_add_beacon(). In such case mt7996 immediately returns
+-EINVAL without telling FW to disable the beacon.
+
+This commit refactors mt7996_mcu_add_beacon() so that FW can be
+correctly informed when disabling AP interface.
+
+Change-Id: I7a381f959e50579266aa1fa4c2a3f9a907f4318e
+Signed-off-by: Michael-CY Lee <michael-cy.lee@mediatek.com>
+---
+ mt7996/mcu.c | 26 +++++++++++++++-----------
+ 1 file changed, 15 insertions(+), 11 deletions(-)
+
+diff --git a/mt7996/mcu.c b/mt7996/mcu.c
+index 76f0bb7e..1dcc367e 100644
+--- a/mt7996/mcu.c
++++ b/mt7996/mcu.c
+@@ -3384,7 +3384,7 @@ int mt7996_mcu_add_beacon(struct ieee80211_hw *hw,
+ 	struct sk_buff *skb, *rskb;
+ 	struct tlv *tlv;
+ 	struct bss_bcn_content_tlv *bcn;
+-	int len;
++	int len, extra_len = 0;
+ 
+ 	if (conf->nontransmitted)
+ 		return 0;
+@@ -3395,28 +3395,32 @@ int mt7996_mcu_add_beacon(struct ieee80211_hw *hw,
+ 		return PTR_ERR(rskb);
+ 
+ 	skb = ieee80211_beacon_get_template(hw, conf->vif, &offs, conf->link_id);
+-	if (!skb) {
++	if (en && !skb) {
+ 		dev_kfree_skb(rskb);
+ 		return -EINVAL;
+ 	}
+ 
+-	if (skb->len > MT7996_MAX_BEACON_SIZE) {
+-		dev_err(dev->mt76.dev, "Bcn size limit exceed\n");
+-		dev_kfree_skb(rskb);
+-		dev_kfree_skb(skb);
+-		return -EINVAL;
+-	}
++	if (skb) {
++		if (skb->len > MT7996_MAX_BEACON_SIZE) {
++			dev_err(dev->mt76.dev, "Bcn size limit exceed\n");
++			dev_kfree_skb(rskb);
++			dev_kfree_skb(skb);
++			return -EINVAL;
++		}
+ 
+-	info = IEEE80211_SKB_CB(skb);
+-	info->hw_queue |= FIELD_PREP(MT_TX_HW_QUEUE_PHY, phy->mt76->band_idx);
++		extra_len = skb->len;
++	}
+ 
+-	len = ALIGN(sizeof(*bcn) + MT_TXD_SIZE + skb->len, 4);
++	len = ALIGN(sizeof(*bcn) + MT_TXD_SIZE + extra_len, 4);
+ 	tlv = mt7996_mcu_add_uni_tlv(rskb, UNI_BSS_INFO_BCN_CONTENT, len);
+ 	bcn = (struct bss_bcn_content_tlv *)tlv;
+ 	bcn->enable = en;
+ 	if (!en)
+ 		goto out;
+ 
++	info = IEEE80211_SKB_CB(skb);
++	info->hw_queue |= FIELD_PREP(MT_TX_HW_QUEUE_PHY, phy->mt76->band_idx);
++
+ 	mt7996_mcu_beacon_cont(dev, conf, rskb, skb, bcn, &offs);
+ 	mt7996_mcu_beacon_mbss(rskb, skb, conf, bcn, &offs);
+ 	mt7996_mcu_beacon_cntdwn(conf, rskb, skb, &offs);
+-- 
+2.45.2
+