diff --git a/package/kernel/mt76/Makefile b/package/kernel/mt76/Makefile index 5245e7868a..bedcba4275 100644 --- a/package/kernel/mt76/Makefile +++ b/package/kernel/mt76/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=mt76 -PKG_RELEASE=1 +PKG_RELEASE=2 PKG_LICENSE:=BSD-3-Clause-Clear PKG_LICENSE_FILES:= diff --git a/package/kernel/mt76/patches/0001-wifi-mt76-mt7915-set-mt76-specific-PS-flag.patch b/package/kernel/mt76/patches/0001-wifi-mt76-mt7915-set-mt76-specific-PS-flag.patch new file mode 100644 index 0000000000..b904cddf33 --- /dev/null +++ b/package/kernel/mt76/patches/0001-wifi-mt76-mt7915-set-mt76-specific-PS-flag.patch @@ -0,0 +1,42 @@ +From e78688a4f44478a9270813ac494fc548ed6b3be9 Mon Sep 17 00:00:00 2001 +From: David Bauer +Date: Fri, 13 Mar 2026 12:19:37 +0100 +Subject: [PATCH] wifi: mt76: mt7915: set mt76 specific PS flag + +mt76 tracks the PSM state of a sta internally with a wcid flag. TX to +such clients is skipped based on the presence of this flag. + +This flag was not added to the PS state notify handler for MT7915 chips. +Without this flag, mt76 queues pending frames to the hardware, +accounting for airtime when a PSM notification is received while in a TX +iteration. + +Set the PS flag for the STA WCID to prevent this from happening. TX gets +skipped in presence of this flag. + +Link: https://patchwork.kernel.org/project/linux-wireless/patch/20260313112502.2026974-1-mail@david-bauer.net/ + +Signed-off-by: David Bauer +--- + mt7915/mcu.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/mt7915/mcu.c b/mt7915/mcu.c +index 6625f905..52c89d2b 100644 +--- a/mt7915/mcu.c ++++ b/mt7915/mcu.c +@@ -421,6 +421,11 @@ static void mt7915_mcu_rx_ps_sync(struct mt7915_dev *dev, struct sk_buff *skb) + if (!sta) + goto out; + ++ if (p->ps_bit) ++ set_bit(MT_WCID_FLAG_PS, &wcid->flags); ++ else ++ clear_bit(MT_WCID_FLAG_PS, &wcid->flags); ++ + ieee80211_sta_ps_transition_ni(sta, !!p->ps_bit); + + out: +-- +2.51.0 +