diff --git a/recipes-kernel/linux-mt76/files/patches/1113-mt76-mt7915-drop-packets-when-TWT-stations-use.patch b/recipes-kernel/linux-mt76/files/patches/1113-mt76-mt7915-drop-packets-when-TWT-stations-use.patch
deleted file mode 100644
index c7e2e09..0000000
--- a/recipes-kernel/linux-mt76/files/patches/1113-mt76-mt7915-drop-packets-when-TWT-stations-use.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From ac7abe57fec7283da9c50d4f513c1b6171e0e912 Mon Sep 17 00:00:00 2001
-From: Bo Jiao <Bo.Jiao@mediatek.com>
-Date: Mon, 4 Jul 2022 19:24:34 +0800
-Subject: [PATCH 1113/1119] mt76: mt7915: drop packets when TWT stations use
-
----
- .../net/wireless/mediatek/mt76/mt7915/mac.c   | 21 ++++++++++++++++---
- .../wireless/mediatek/mt76/mt7915/mt7915.h    |  2 ++
- 2 files changed, 20 insertions(+), 3 deletions(-)
-
-diff --git a/mt7915/mac.c b/mt7915/mac.c
-index 5e5df23d..55b38d16 100644
---- a/mt7915/mac.c
-+++ b/mt7915/mac.c
-@@ -725,6 +725,7 @@ int mt7915_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
- 	struct ieee80211_tx_info *info = IEEE80211_SKB_CB(tx_info->skb);
- 	struct ieee80211_key_conf *key = info->control.hw_key;
- 	struct ieee80211_vif *vif = info->control.vif;
-+	struct mt7915_sta *msta = NULL;
- 	struct mt76_connac_fw_txp *txp;
- 	struct mt76_txwi_cache *t;
- 	int id, i, nbuf = tx_info->nbuf - 1;
-@@ -738,8 +739,6 @@ int mt7915_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
- 		wcid = &dev->mt76.global_wcid;
- 
- 	if (sta) {
--		struct mt7915_sta *msta;
--
- 		msta = (struct mt7915_sta *)sta->drv_priv;
- 
- 		if (time_after(jiffies, msta->jiffies + HZ / 4)) {
-@@ -755,10 +754,22 @@ int mt7915_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
- 	    mgmt->u.action.category == 0xff)
- 		return -1;
- 
-+	spin_lock_bh(&mdev->token_lock);
-+	if (msta && msta->twt.flowid_mask && msta->token_count > 128) {
-+		spin_unlock_bh(&mdev->token_lock);
-+		return -1;
-+	}
-+	spin_unlock_bh(&mdev->token_lock);
-+
- 	id = mt76_token_consume(mdev, &t);
- 	if (id < 0)
- 		return id;
- 
-+	spin_lock_bh(&mdev->token_lock);
-+	if (msta)
-+		msta->token_count++;
-+	spin_unlock_bh(&mdev->token_lock);
-+
- 	pid = mt76_tx_status_skb_add(mdev, wcid, tx_info->skb);
- 	mt7915_mac_write_txwi(mdev, txwi_ptr, tx_info->skb, wcid, pid, key,
- 			      qid, 0);
-@@ -939,6 +950,7 @@ mt7915_mac_tx_free(struct mt7915_dev *dev, void *data, int len)
- 	struct mt76_dev *mdev = &dev->mt76;
- 	struct mt76_txwi_cache *txwi;
- 	struct ieee80211_sta *sta = NULL;
-+	struct mt7915_sta *msta = NULL;
- 	LIST_HEAD(free_list);
- 	void *end = data + len;
- 	bool v3, wake = false;
-@@ -962,7 +974,6 @@ mt7915_mac_tx_free(struct mt7915_dev *dev, void *data, int len)
- 		 * 1'b0: msdu_id with the same 'wcid pair' as above.
- 		 */
- 		if (info & MT_TX_FREE_PAIR) {
--			struct mt7915_sta *msta;
- 			struct mt76_wcid *wcid;
- 			u16 idx;
- 
-@@ -995,6 +1006,10 @@ mt7915_mac_tx_free(struct mt7915_dev *dev, void *data, int len)
- 			txwi = mt76_token_release(mdev, msdu, &wake);
- 			if (!txwi)
- 				continue;
-+			spin_lock(&mdev->token_lock);
-+			if (msta)
-+				msta->token_count--;
-+			spin_unlock(&mdev->token_lock);
- 
- 			mt7915_txwi_free(dev, txwi, sta, &free_list);
- 		}
-diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 7c7d6bd3..5f11b3fb 100644
---- a/mt7915/mt7915.h
-+++ b/mt7915/mt7915.h
-@@ -136,6 +136,8 @@ struct mt7915_sta {
- 		u8 flowid_mask;
- 		struct mt7915_twt_flow flow[MT7915_MAX_STA_TWT_AGRT];
- 	} twt;
-+
-+	int token_count;
- };
- 
- struct mt7915_vif_cap {
--- 
-2.25.1
-
diff --git a/recipes-kernel/linux-mt76/files/patches/1113-mt76-mt7915-reduce-TWT-SP-sent-to-FW-for-cert.patch b/recipes-kernel/linux-mt76/files/patches/1113-mt76-mt7915-reduce-TWT-SP-sent-to-FW-for-cert.patch
new file mode 100644
index 0000000..4d28ad7
--- /dev/null
+++ b/recipes-kernel/linux-mt76/files/patches/1113-mt76-mt7915-reduce-TWT-SP-sent-to-FW-for-cert.patch
@@ -0,0 +1,28 @@
+From af6a70a816d5a98d22b5bb1012e21cc2ecb4d5db Mon Sep 17 00:00:00 2001
+From: Peter Chiu <chui-hao.chiu@mediatek.com>
+Date: Thu, 4 Aug 2022 14:08:11 +0800
+Subject: [PATCH] mt76: mt7915: reduce TWT SP sent to FW for cert
+
+Set TWT SP duration to 88 percent to prevent HW sends PPDU over TWT SP.
+
+Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
+---
+ mt7915/mcu.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mt7915/mcu.c b/mt7915/mcu.c
+index d7e717f4..2bd67f7c 100644
+--- a/mt7915/mcu.c
++++ b/mt7915/mcu.c
+@@ -3538,7 +3538,7 @@ int mt7915_mcu_twt_agrt_update(struct mt7915_dev *dev,
+ 		.own_mac_idx = mvif->mt76.omac_idx,
+ 		.flowid = flow->id,
+ 		.peer_id = cpu_to_le16(flow->wcid),
+-		.duration = flow->duration,
++		.duration = (flow->duration * 7) >> 3,
+ 		.bss_idx = mvif->mt76.idx,
+ 		.start_tsf = cpu_to_le64(flow->tsf),
+ 		.mantissa = flow->mantissa,
+-- 
+2.18.0
+
diff --git a/recipes-kernel/linux-mt76/files/patches/1119-mt76-mt7915-initialize-wcid.patch b/recipes-kernel/linux-mt76/files/patches/1119-mt76-mt7915-initialize-wcid.patch
index ed572cc..d26e59c 100644
--- a/recipes-kernel/linux-mt76/files/patches/1119-mt76-mt7915-initialize-wcid.patch
+++ b/recipes-kernel/linux-mt76/files/patches/1119-mt76-mt7915-initialize-wcid.patch
@@ -1,26 +1,26 @@
-From ce1b7634efbf75007f431dd770ebd70e47771029 Mon Sep 17 00:00:00 2001
+From 1c4ec7f43f20ebbbe0c30100e6798ace079c3714 Mon Sep 17 00:00:00 2001
 From: Sujuan Chen <sujuan.chen@mediatek.com>
 Date: Tue, 12 Jul 2022 13:56:07 +0800
-Subject: [PATCH 1119/1119] mt76 mt7915 initialize wcid
+Subject: [PATCH] mt76 mt7915 initialize wcid
 
 Signed-off-by: Sujuan Chen <sujuan.chen@mediatek.com>
 ---
- drivers/net/wireless/mediatek/mt76/mt7915/mac.c | 2 +-
+ mt7915/mac.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index 55b38d16..0310ca74 100644
+index 5e5df23d..9674015d 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
-@@ -974,7 +974,7 @@ mt7915_mac_tx_free(struct mt7915_dev *dev, void *data, int len)
- 		 * 1'b0: msdu_id with the same 'wcid pair' as above.
+@@ -963,7 +963,7 @@ mt7915_mac_tx_free(struct mt7915_dev *dev, void *data, int len)
  		 */
  		if (info & MT_TX_FREE_PAIR) {
+ 			struct mt7915_sta *msta;
 -			struct mt76_wcid *wcid;
 +			struct mt76_wcid *wcid = NULL;
  			u16 idx;
  
  			idx = FIELD_GET(MT_TX_FREE_WLAN_ID, info);
 -- 
-2.25.1
+2.18.0
 
diff --git a/recipes-kernel/linux-mt76/files/patches/1120-mt76-HEMU-Add-dump-support.patch b/recipes-kernel/linux-mt76/files/patches/1120-mt76-HEMU-Add-dump-support.patch
new file mode 100644
index 0000000..e333271
--- /dev/null
+++ b/recipes-kernel/linux-mt76/files/patches/1120-mt76-HEMU-Add-dump-support.patch
@@ -0,0 +1,77 @@
+From 2bfc2727beaeebe4c475f27e65a22522a47e5ec0 Mon Sep 17 00:00:00 2001
+From: TomLiu <tomml.liu@mediatek.com>
+Date: Thu, 11 Aug 2022 18:09:45 -0700
+Subject: [PATCH] mt76: HEMU: Add dump support
+
+Change-Id: I521214f3feb6f0d528a9f550255050ffd1ec96d2
+---
+ mt7915/vendor.c | 26 ++++++++++++++++++++++++++
+ mt7915/vendor.h |  1 +
+ 2 files changed, 27 insertions(+)
+
+diff --git a/mt7915/vendor.c b/mt7915/vendor.c
+index 5a28a55..7acb330 100644
+--- a/mt7915/vendor.c
++++ b/mt7915/vendor.c
+@@ -37,6 +37,7 @@ wireless_ctrl_policy[NUM_MTK_VENDOR_ATTRS_WIRELESS_CTRL] = {
+ static const struct nla_policy
+ hemu_ctrl_policy[NUM_MTK_VENDOR_ATTRS_HEMU_CTRL] = {
+ 	[MTK_VENDOR_ATTR_HEMU_CTRL_ONOFF] = {.type = NLA_U8 },
++	[MTK_VENDOR_ATTR_HEMU_CTRL_DUMP] = {.type = NLA_U8 },
+ };
+ 
+ static const struct nla_policy
+@@ -997,6 +998,30 @@ static int mt7915_vendor_hemu_ctrl(struct wiphy *wiphy,
+ 	return 0;
+ }
+ 
++
++static int
++mt7915_vendor_hemu_ctrl_dump(struct wiphy *wiphy, struct wireless_dev *wdev,
++			     struct sk_buff *skb, const void *data, int data_len,
++			     unsigned long *storage)
++{
++	struct ieee80211_hw *hw = wiphy_to_ieee80211_hw(wiphy);
++	struct mt7915_phy *phy = mt7915_hw_phy(hw);
++	struct mt7915_dev *dev = phy->dev;
++	void *a;
++	int len = 0;
++
++	if (*storage == 1)
++		return -ENOENT;
++	*storage = 1;
++
++	if (nla_put_u8(skb, MTK_VENDOR_ATTR_HEMU_CTRL_DUMP, dev->dbg.muru_onoff))
++		return -ENOMEM;
++	len += 1;
++
++	return len;
++}
++
++
+ static int
+ mt7915_vendor_phy_capa_ctrl_dump(struct wiphy *wiphy, struct wireless_dev *wdev,
+ 			     struct sk_buff *skb, const void *data, int data_len,
+@@ -1122,6 +1147,7 @@ static const struct wiphy_vendor_command mt7915_vendor_commands[] = {
+ 		.flags = WIPHY_VENDOR_CMD_NEED_NETDEV |
+ 			WIPHY_VENDOR_CMD_NEED_RUNNING,
+ 		.doit = mt7915_vendor_hemu_ctrl,
++		.dumpit = mt7915_vendor_hemu_ctrl_dump,
+ 		.policy = hemu_ctrl_policy,
+ 		.maxattr = MTK_VENDOR_ATTR_HEMU_CTRL_MAX,
+ 	},
+diff --git a/mt7915/vendor.h b/mt7915/vendor.h
+index 83c41bc..57f52f3 100644
+--- a/mt7915/vendor.h
++++ b/mt7915/vendor.h
+@@ -58,6 +58,7 @@ enum mtk_vendor_attr_hemu_ctrl {
+ 	MTK_VENDOR_ATTR_HEMU_CTRL_UNSPEC,
+ 
+ 	MTK_VENDOR_ATTR_HEMU_CTRL_ONOFF,
++	MTK_VENDOR_ATTR_HEMU_CTRL_DUMP,
+ 
+ 	/* keep last */
+ 	NUM_MTK_VENDOR_ATTRS_HEMU_CTRL,
+-- 
+2.32.0
+
diff --git a/recipes-kernel/linux-mt76/files/patches/3004-mt76-add-ser-spport-when-wed-on.patch b/recipes-kernel/linux-mt76/files/patches/3004-mt76-add-ser-spport-when-wed-on.patch
index f1c1b02..17bea92 100755
--- a/recipes-kernel/linux-mt76/files/patches/3004-mt76-add-ser-spport-when-wed-on.patch
+++ b/recipes-kernel/linux-mt76/files/patches/3004-mt76-add-ser-spport-when-wed-on.patch
@@ -1,21 +1,41 @@
-From 6a2341ff1a75100d530982d0c021a133124174cc Mon Sep 17 00:00:00 2001
+From f9d72a188038fcda7cc4d8d5a166af4065ca645c Mon Sep 17 00:00:00 2001
 From: Sujuan Chen <sujuan.chen@mediatek.com>
 Date: Thu, 28 Jul 2022 11:16:15 +0800
-Subject: [PATCH 3/3] mt76 add ser spport when wed on
+Subject: [PATCH] mt76 add ser spport when wed on
 
 Signed-off-by: Sujuan Chen <sujuan.chen@mediatek.com>
 ---
- dma.c        | 26 ++++++++++++++++++--------
- dma.h        |  2 +-
- mt7915/dma.c | 26 +++++++++++++++++++++-----
- mt7915/mac.c |  6 ++++++
- 4 files changed, 46 insertions(+), 14 deletions(-)
+ dma.c           | 29 ++++++++++++++++++++---------
+ dma.h           |  2 +-
+ mt76.h          |  1 +
+ mt7915/dma.c    | 36 +++++++++++++++++++++++++++++++-----
+ mt7915/mac.c    | 20 ++++++++++++++++++++
+ mt7915/mmio.c   |  2 ++
+ mt7915/mt7915.h |  1 +
+ 7 files changed, 76 insertions(+), 15 deletions(-)
 
 diff --git a/dma.c b/dma.c
-index 4d4d4046..9c821442 100644
+index 4d4d4046..9f886b77 100644
 --- a/dma.c
 +++ b/dma.c
-@@ -624,14 +624,18 @@ mt76_dma_rx_fill(struct mt76_dev *dev, struct mt76_queue *q)
+@@ -169,7 +169,7 @@ mt76_free_pending_txwi(struct mt76_dev *dev)
+ 	local_bh_enable();
+ }
+ 
+-static void
++void
+ mt76_free_pending_rxwi(struct mt76_dev *dev)
+ {
+ 	struct mt76_txwi_cache *r;
+@@ -183,6 +183,7 @@ mt76_free_pending_rxwi(struct mt76_dev *dev)
+ 	}
+ 	local_bh_enable();
+ }
++EXPORT_SYMBOL_GPL(mt76_free_pending_rxwi);
+ 
+ static void
+ mt76_dma_sync_idx(struct mt76_dev *dev, struct mt76_queue *q)
+@@ -624,14 +625,18 @@ mt76_dma_rx_fill(struct mt76_dev *dev, struct mt76_queue *q)
  	return frames;
  }
  
@@ -29,15 +49,15 @@
  	int ret, type, ring;
 -	u8 flags = q->flags;
 +	u8 flags;
-+
+ 
 +	if (!q || !q->ndesc)
 +		return -EINVAL;
- 
++
 +	flags = q->flags;
  	if (!mtk_wed_device_active(wed))
  		q->flags &= ~MT_QFLAG_WED;
  
-@@ -643,7 +647,7 @@ mt76_dma_wed_setup(struct mt76_dev *dev, struct mt76_queue *q)
+@@ -643,7 +648,7 @@ mt76_dma_wed_setup(struct mt76_dev *dev, struct mt76_queue *q)
  
  	switch (type) {
  	case MT76_WED_Q_TX:
@@ -46,7 +66,7 @@
  		if (!ret)
  			q->wed_regs = wed->tx_ring[ring].reg_base;
  		break;
-@@ -659,7 +663,7 @@ mt76_dma_wed_setup(struct mt76_dev *dev, struct mt76_queue *q)
+@@ -659,7 +664,7 @@ mt76_dma_wed_setup(struct mt76_dev *dev, struct mt76_queue *q)
  			q->wed_regs = wed->txfree_ring.reg_base;
  		break;
  	case MT76_WED_Q_RX:
@@ -55,7 +75,7 @@
  		if (!ret)
  			q->wed_regs = wed->rx_ring[ring].reg_base;
  		break;
-@@ -672,6 +676,7 @@ mt76_dma_wed_setup(struct mt76_dev *dev, struct mt76_queue *q)
+@@ -672,6 +677,7 @@ mt76_dma_wed_setup(struct mt76_dev *dev, struct mt76_queue *q)
  	return 0;
  #endif
  }
@@ -63,7 +83,7 @@
  
  static int
  mt76_dma_alloc_queue(struct mt76_dev *dev, struct mt76_queue *q,
-@@ -704,7 +709,7 @@ mt76_dma_alloc_queue(struct mt76_dev *dev, struct mt76_queue *q,
+@@ -704,7 +710,7 @@ mt76_dma_alloc_queue(struct mt76_dev *dev, struct mt76_queue *q,
  	if (!q->entry)
  		return -ENOMEM;
  
@@ -72,7 +92,7 @@
  	if (ret)
  		return ret;
  
-@@ -755,8 +760,13 @@ mt76_dma_rx_reset(struct mt76_dev *dev, enum mt76_rxq_id qid)
+@@ -755,8 +761,13 @@ mt76_dma_rx_reset(struct mt76_dev *dev, enum mt76_rxq_id qid)
  		q->desc[i].ctrl = cpu_to_le32(MT_DMA_CTL_DMA_DONE);
  
  	mt76_dma_rx_cleanup(dev, q);
@@ -99,11 +119,31 @@
 -
 +int mt76_dma_wed_setup(struct mt76_dev *dev, struct mt76_queue *q, bool reset);
  #endif
+diff --git a/mt76.h b/mt76.h
+index 0043c7c8..5e03f565 100644
+--- a/mt76.h
++++ b/mt76.h
+@@ -1367,6 +1367,7 @@ mt76_tx_status_get_hw(struct mt76_dev *dev, struct sk_buff *skb)
+ void mt76_put_txwi(struct mt76_dev *dev, struct mt76_txwi_cache *t);
+ void mt76_put_rxwi(struct mt76_dev *dev, struct mt76_txwi_cache *t);
+ struct mt76_txwi_cache *mt76_get_rxwi(struct mt76_dev *dev);
++void mt76_free_pending_rxwi(struct mt76_dev *dev);
+ void mt76_rx_complete(struct mt76_dev *dev, struct sk_buff_head *frames,
+ 		      struct napi_struct *napi);
+ void mt76_rx_poll_complete(struct mt76_dev *dev, enum mt76_rxq_id q,
 diff --git a/mt7915/dma.c b/mt7915/dma.c
-index 7d8d60bb..8df7d0ee 100644
+index 7d8d60bb..6435604b 100644
 --- a/mt7915/dma.c
 +++ b/mt7915/dma.c
-@@ -549,28 +549,44 @@ int mt7915_dma_reset(struct mt7915_dev *dev, bool force)
+@@ -529,6 +529,7 @@ int mt7915_dma_init(struct mt7915_dev *dev, struct mt7915_phy *phy2)
+ int mt7915_dma_reset(struct mt7915_dev *dev, bool force)
+ {
+ 	struct mt76_phy *mphy_ext = dev->mt76.phy2;
++	struct mtk_wed_device *wed = &dev->mt76.mmio.wed;
+ 	int i;
+ 
+ 	/* clean up hw queues */
+@@ -549,28 +550,53 @@ int mt7915_dma_reset(struct mt7915_dev *dev, bool force)
  		mt7915_wfsys_reset(dev);
  
  	/* disable wfdma */
@@ -111,18 +151,27 @@
 +		mtk_wed_device_dma_reset(&dev->mt76.mmio.wed);
  	mt7915_dma_disable(dev, force);
  
++	/* set wifi reset done, wait FE reset */
++	if (mtk_wed_device_active(wed) && atomic_read(&wed->fe_reset)) {
++		atomic_set(&wed->fe_reset, 0);
++		rtnl_lock();
++		complete(&wed->wlan_reset_done);
++		rtnl_unlock();
++		wait_for_completion(&wed->fe_reset_done);
++	}
++
  	/* reset hw queues */
  	for (i = 0; i < __MT_TXQ_MAX; i++) {
  		mt76_queue_reset(dev, dev->mphy.q_tx[i]);
 -		if (mphy_ext)
 +		if (mphy_ext) {
  			mt76_queue_reset(dev, mphy_ext->q_tx[i]);
-+			if (mtk_wed_device_active(&dev->mt76.mmio.wed))
++			if (mtk_wed_device_active(wed))
 +				mt76_dma_wed_setup(&dev->mt76,
 +						   mphy_ext->q_tx[i],
 +						   true);
 +		}
-+		if (mtk_wed_device_active(&dev->mt76.mmio.wed))
++		if (mtk_wed_device_active(wed))
 +			mt76_dma_wed_setup(&dev->mt76, dev->mphy.q_tx[i],
 +					   true);
  	}
@@ -144,7 +193,7 @@
  	mt76_for_each_q_rx(&dev->mt76, i)
  		mt76_queue_rx_reset(dev, i);
  
-+	if(mtk_wed_device_active(&dev->mt76.mmio.wed) && is_mt7915(&dev->mt76))
++	if(mtk_wed_device_active(wed) && is_mt7915(&dev->mt76))
 +		mt76_rmw(dev, MT_WFDMA0_EXT0_CFG, MT_WFDMA0_EXT0_RXWB_KEEP,
 +			 MT_WFDMA0_EXT0_RXWB_KEEP);
 +
@@ -154,10 +203,38 @@
  }
  
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index 1f8e1230..f53de870 100644
+index 1f8e1230..b0df0be0 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
-@@ -1674,6 +1674,12 @@ void mt7915_mac_reset_work(struct work_struct *work)
+@@ -925,6 +925,8 @@ void mt7915_wed_release_rx_buf(struct mtk_wed_device *wed)
+ 		mt76_put_rxwi(&dev->mt76, rxwi);
+ 	}
+ 
++	mt76_free_pending_rxwi(&dev->mt76);
++
+ 	if (wed->rx_page.va)
+ 		return;
+ 
+@@ -935,6 +937,18 @@ void mt7915_wed_release_rx_buf(struct mtk_wed_device *wed)
+ 	return;
+ }
+ 
++void mt7915_wed_trigger_ser(struct mtk_wed_device *wed)
++{
++	struct mt7915_dev *dev;
++	u8 band_idx;
++	dev = container_of(wed, struct mt7915_dev, mt76.mmio.wed);
++	band_idx = dev->phy.band_idx;
++
++	mt7915_mcu_set_ser(dev, SER_RECOVER, 1, band_idx);
++
++	return;
++}
++
+ static void
+ mt7915_tx_check_aggr(struct ieee80211_sta *sta, __le32 *txwi)
+ {
+@@ -1674,6 +1688,12 @@ void mt7915_mac_reset_work(struct work_struct *work)
  	if (!(READ_ONCE(dev->reset_state) & MT_MCU_CMD_STOP_DMA))
  		return;
  
@@ -170,6 +247,31 @@
  	ieee80211_stop_queues(mt76_hw(dev));
  	if (ext_phy)
  		ieee80211_stop_queues(ext_phy->hw);
+diff --git a/mt7915/mmio.c b/mt7915/mmio.c
+index 9316e056..e1445595 100644
+--- a/mt7915/mmio.c
++++ b/mt7915/mmio.c
+@@ -757,6 +757,8 @@ mt7915_pci_wed_init(struct mt7915_dev *dev, struct device *pdev, int *irq)
+ 	wed->wlan.init_rx_buf = mt7915_wed_init_rx_buf;
+ 	wed->wlan.release_rx_buf = mt7915_wed_release_rx_buf;
+ 
++	wed->wlan.ser_trigger = mt7915_wed_trigger_ser;
++
+ 	dev->mt76.rx_token_size = wed->wlan.rx_pkt;
+ 	if (mtk_wed_device_attach(wed) != 0)
+ 		return 0;
+diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
+index 97eac730..bcc58e5f 100644
+--- a/mt7915/mt7915.h
++++ b/mt7915/mt7915.h
+@@ -548,6 +548,7 @@ u32 mt7915_wed_init_buf(void *ptr, dma_addr_t phys, int token_id);
+ u32 mt7915_wed_init_rx_buf(struct mtk_wed_device *wed,
+ 				int pkt_num);
+ void mt7915_wed_release_rx_buf(struct mtk_wed_device *wed);
++void mt7915_wed_trigger_ser(struct mtk_wed_device *wed);
+ int mt7915_register_device(struct mt7915_dev *dev);
+ void mt7915_unregister_device(struct mt7915_dev *dev);
+ int mt7915_eeprom_init(struct mt7915_dev *dev);
 -- 
 2.18.0
 
diff --git a/recipes-kernel/linux-mt76/files/patches/patches.inc b/recipes-kernel/linux-mt76/files/patches/patches.inc
index 92e3aa2..cb34658 100644
--- a/recipes-kernel/linux-mt76/files/patches/patches.inc
+++ b/recipes-kernel/linux-mt76/files/patches/patches.inc
@@ -20,13 +20,14 @@
     file://1008-mt76-mt7915-add-mt76-vendor-muru-onoff-command.patch \
     file://1111-mt76-testmode-additional-supports.patch \
     file://1112-mt76-mt7915-init-rssi-in-WTBL-when-add-station.patch \
-    file://1113-mt76-mt7915-drop-packets-when-TWT-stations-use.patch \
+    file://1113-mt76-mt7915-reduce-TWT-SP-sent-to-FW-for-cert.patch \
     file://1114-mt76-airtime-fairness-feature-off-in-mac80211.patch \
     file://1115-mt76-mt7915-add-mt7986-and-mt7916-pre-calibration.patch \
     file://1116-mt76-mt7915-add-phy-capability-vendor-command.patch \
     file://1117-mt76-mt7915-add-vendor-subcmd-EDCCA-ctrl.patch \
     file://1118-mt76-mt7915-implement-bin-file-mode.patch \
     file://1119-mt76-mt7915-initialize-wcid.patch \
+    file://1120-mt76-HEMU-Add-dump-support.patch \
     file://3001-mt76-add-wed-tx-support.patch \
     file://3002-mt76-add-wed-rx-support.patch \
     file://3003-mt76-add-fill-receive-path-to-report-wed-idx.patch \
