diff --git a/package/kernel/mt76/Makefile b/package/kernel/mt76/Makefile
index 339610521..f19fcbf76 100644
--- a/package/kernel/mt76/Makefile
+++ b/package/kernel/mt76/Makefile
@@ -15,19 +15,19 @@ PKG_SOURCE_VERSION:=5b509e80384ab019ac11aa90c81ec0dbb5b0d7f2
 PKG_MIRROR_HASH:=6fc25df4d28becd010ff4971b23731c08b53e69381a9e4c868091899712f78a9
 PATCH_DIR:=./patches-5.4
 else ifdef CONFIG_LINUX_6_1
-PKG_SOURCE_DATE:=2024-04-04
-PKG_SOURCE_VERSION:=8f301a5c5fe3d998b50666bde1d35d412833be89
-PKG_MIRROR_HASH:=49291145ccceeac2964c9a43a46bed88298e5c1da63c6f3c2c1f6b3c1902a61e
+PKG_SOURCE_DATE:=2024-05-17
+PKG_SOURCE_VERSION:=513c131c6309712a51502870b041f45b4bd6a6d4
+PKG_MIRROR_HASH:=9f5d7a846912e7deafa216c2aabb038ec58666ecbf8a394e947b144001994d78
 PATCH_DIR:=./patches-6.x
 else ifdef CONFIG_LINUX_6_6
-PKG_SOURCE_DATE:=2024-04-04
-PKG_SOURCE_VERSION:=8f301a5c5fe3d998b50666bde1d35d412833be89
-PKG_MIRROR_HASH:=49291145ccceeac2964c9a43a46bed88298e5c1da63c6f3c2c1f6b3c1902a61e
+PKG_SOURCE_DATE:=2024-05-17
+PKG_SOURCE_VERSION:=513c131c6309712a51502870b041f45b4bd6a6d4
+PKG_MIRROR_HASH:=9f5d7a846912e7deafa216c2aabb038ec58666ecbf8a394e947b144001994d78
 PATCH_DIR:=./patches-6.x
 else ifdef CONFIG_LINUX_6_12
-PKG_SOURCE_DATE:=2024-04-04
-PKG_SOURCE_VERSION:=8f301a5c5fe3d998b50666bde1d35d412833be89
-PKG_MIRROR_HASH:=49291145ccceeac2964c9a43a46bed88298e5c1da63c6f3c2c1f6b3c1902a61e
+PKG_SOURCE_DATE:=2024-05-17
+PKG_SOURCE_VERSION:=513c131c6309712a51502870b041f45b4bd6a6d4
+PKG_MIRROR_HASH:=9f5d7a846912e7deafa216c2aabb038ec58666ecbf8a394e947b144001994d78
 PATCH_DIR:=./patches-6.x
 else
 PKG_SOURCE_DATE:=2023-09-18
diff --git a/package/kernel/mt76/patches-5.4/110-wifi-mt76-ignore-key-disable-commands.patch b/package/kernel/mt76/patches-5.4/110-ignore-key-disable.patch
similarity index 100%
rename from package/kernel/mt76/patches-5.4/110-wifi-mt76-ignore-key-disable-commands.patch
rename to package/kernel/mt76/patches-5.4/110-ignore-key-disable.patch
diff --git a/package/kernel/mt76/patches-6.x/003-wifi-mt76-mt7915-fix-oops.patch b/package/kernel/mt76/patches-6.x/002-mt76-mt7915-fix-oops.patch
similarity index 100%
rename from package/kernel/mt76/patches-6.x/003-wifi-mt76-mt7915-fix-oops.patch
rename to package/kernel/mt76/patches-6.x/002-mt76-mt7915-fix-oops.patch
diff --git a/package/kernel/mt76/patches-6.x/002-mt7603-fix-mixed-code.patch b/package/kernel/mt76/patches-6.x/002-mt7603-fix-mixed-code.patch
deleted file mode 100644
index 92befe4af..000000000
--- a/package/kernel/mt76/patches-6.x/002-mt7603-fix-mixed-code.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 513c131c6309712a51502870b041f45b4bd6a6d4 Mon Sep 17 00:00:00 2001
-From: Felix Fietkau <nbd@nbd.name>
-Date: Fri, 17 May 2024 13:51:22 +0200
-Subject: [PATCH] mt76: mt7603: fix mixed declarations and code
-
-Move the qid variable declaration further up
-
-Fixes: b473c0e47f04 ("wifi: mt76: mt7603: fix tx queue of loopback packets")
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
----
- mt7603/dma.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/mt7603/dma.c
-+++ b/mt7603/dma.c
-@@ -29,7 +29,7 @@ mt7603_rx_loopback_skb(struct mt7603_dev
- 	struct ieee80211_sta *sta;
- 	struct mt7603_sta *msta;
- 	struct mt76_wcid *wcid;
--	u8 tid = 0, hwq = 0;
-+	u8 qid, tid = 0, hwq = 0;
- 	void *priv;
- 	int idx;
- 	u32 val;
-@@ -57,7 +57,7 @@ mt7603_rx_loopback_skb(struct mt7603_dev
- 	if (ieee80211_is_data_qos(hdr->frame_control)) {
- 		tid = *ieee80211_get_qos_ctl(hdr) &
- 			 IEEE80211_QOS_CTL_TAG1D_MASK;
--		u8 qid = tid_to_ac[tid];
-+		qid = tid_to_ac[tid];
- 		hwq = wmm_queue_map[qid];
- 		skb_set_queue_mapping(skb, qid);
- 	} else if (ieee80211_is_data(hdr->frame_control)) {
diff --git a/package/kernel/mt76/patches-6.x/102-fix-mt76-connac3-build.patch b/package/kernel/mt76/patches-6.x/102-fix-mt76-connac3-build.patch
new file mode 100644
index 000000000..1c8c6c727
--- /dev/null
+++ b/package/kernel/mt76/patches-6.x/102-fix-mt76-connac3-build.patch
@@ -0,0 +1,11 @@
+--- a/mt76_connac3_mac.c
++++ b/mt76_connac3_mac.c
+@@ -215,7 +215,7 @@
+ 	usig = mt76_connac3_mac_radiotap_push_tlv(skb, IEEE80211_RADIOTAP_EHT_USIG,
+ 						  sizeof(*usig));
+ 
+-	status->flag |= RX_FLAG_RADIOTAP_TLV_AT_END;
++	status->flag |= RX_FLAG_RADIOTAP_VENDOR_DATA;
+ 
+ 	eht->known |= EHT_BITS(KNOWN_SPATIAL_REUSE) |
+ 		      EHT_BITS(KNOWN_GI) |