mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-04 06:54:27 -05:00 
			
		
		
		
	mt76: update to Git HEAD (2024-04-03)
605624a4e17b mt76: fix path to page_pool helper include e4de3592c4e3 wifi: mt76: mt7603: fix tx queue of loopback packets 446f652c967c wifi: mt76: mt7603: add wpdma tx eof flag for PSE client reset 669aba47a145 wifi: mt76: mt7915: fix HE PHY capability regression 5914ea57a31f wifi: mt76: mt7915: workaround dubious x | !y warning e8b5991f7dac wifi: mt76: mt7915: workaround too long expansion sparse warnings e507b4e32ead wifi: mt76: mt7921: fix fw used for offload check for mt7922 725f531c1459 wifi: mt76: connac: check for null before dereferencing b108dda7e201 wifi: mt76: mt7996: fix size of txpower MCU command 5b7616491f07 wifi: mt76: mt7921: introduce mt7920 PCIe support 0436995feca9 wifi: mt76: mt7921s: fix potential hung tasks during chip recovery 75759dca73d5 wifi: mt76: mt7925: ensure 4-byte alignment for suspend & wow command b96ab5e62010 wifi: mt76: mt7996: fix uninitialized variable in mt7996_irq_tasklet() 7ff11c7259a3 wifi: mt76: sdio: move mcu queue size check inside critical section 02846a5d0f0f wifi: mt76: mt7915: Remove unused of_gpio.h cb8df32e0475 wifi: mt76: mt7996: disable rx header translation for BMC entry a4c4b550512e wifi: mt76: connac: use peer address for station BMC entry 260c5b7c3ba0 wifi: mt76: mt7996: set RCPI value in rate control command 0b7e645db9c2 wifi: mt76: connac: enable HW CSO module for mt7996 f19035fe0b4d wifi: mt76: mt7996: fix non-main BSS no beacon issue for MBSS scenario 424e9df466ce wifi: mt76: mt7996: fix potential memory leakage when reading chip temperature f70cb4f0508e wifi: mt76: connac: enable critical packet mode support for mt7992 5f1bf8865247 wifi: mt76: mt7996: add sanity checks for background radar trigger 1e336a8582dc wifi: mt76: connac: use muar idx 0xe for non-mt799x as well Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
		
							parent
							
								
									0b10e5a5dc
								
							
						
					
					
						commit
						a10a6fbac7
					
				@ -1,16 +1,16 @@
 | 
			
		||||
include $(TOPDIR)/rules.mk
 | 
			
		||||
 | 
			
		||||
PKG_NAME:=mt76
 | 
			
		||||
PKG_RELEASE=2
 | 
			
		||||
PKG_RELEASE=1
 | 
			
		||||
 | 
			
		||||
PKG_LICENSE:=GPLv2
 | 
			
		||||
PKG_LICENSE_FILES:=
 | 
			
		||||
 | 
			
		||||
PKG_SOURCE_URL:=https://github.com/openwrt/mt76
 | 
			
		||||
PKG_SOURCE_PROTO:=git
 | 
			
		||||
PKG_SOURCE_DATE:=2024-03-18
 | 
			
		||||
PKG_SOURCE_VERSION:=2135e201e7a9339e018d4e2d4a33c73266e674d7
 | 
			
		||||
PKG_MIRROR_HASH:=530db8a70d18295677989aafc9c1757b151ef77e359985417f1d36e7d2415d33
 | 
			
		||||
PKG_SOURCE_DATE:=2024-04-03
 | 
			
		||||
PKG_SOURCE_VERSION:=1e336a8582dce2ef32ddd440d423e9afef961e71
 | 
			
		||||
PKG_MIRROR_HASH:=f3801af80d5f9c1aa266c9401d4dfa2d501df0382c81fd249150e17dddc70936
 | 
			
		||||
 | 
			
		||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
 | 
			
		||||
PKG_USE_NINJA:=0
 | 
			
		||||
 | 
			
		||||
@ -1,24 +0,0 @@
 | 
			
		||||
--- a/mac80211.c
 | 
			
		||||
+++ b/mac80211.c
 | 
			
		||||
@@ -4,7 +4,9 @@
 | 
			
		||||
  */
 | 
			
		||||
 #include <linux/sched.h>
 | 
			
		||||
 #include <linux/of.h>
 | 
			
		||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(6,6,0)
 | 
			
		||||
 #include <net/page_pool.h>
 | 
			
		||||
+#endif
 | 
			
		||||
 #include "mt76.h"
 | 
			
		||||
 
 | 
			
		||||
 #define CHAN2G(_idx, _freq) {			\
 | 
			
		||||
--- a/mt76.h
 | 
			
		||||
+++ b/mt76.h
 | 
			
		||||
@@ -13,6 +13,9 @@
 | 
			
		||||
 #include <linux/leds.h>
 | 
			
		||||
 #include <linux/usb.h>
 | 
			
		||||
 #include <linux/average.h>
 | 
			
		||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,6,0)
 | 
			
		||||
+#include <net/page_pool/helpers.h>
 | 
			
		||||
+#endif
 | 
			
		||||
 #include <linux/soc/mediatek/mtk_wed.h>
 | 
			
		||||
 #include <net/mac80211.h>
 | 
			
		||||
 #include "util.h"
 | 
			
		||||
@ -1,81 +0,0 @@
 | 
			
		||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
 | 
			
		||||
Date: Mon, 25 Mar 2024 18:54:02 +0100
 | 
			
		||||
Subject: [PATCH] wifi: mt76: mt7603: add debugfs attr for disabling frames
 | 
			
		||||
 buffering
 | 
			
		||||
MIME-Version: 1.0
 | 
			
		||||
Content-Type: text/plain; charset=UTF-8
 | 
			
		||||
Content-Transfer-Encoding: 8bit
 | 
			
		||||
 | 
			
		||||
MT7603EN and MT7628AN were reported by multiple users to be unstable
 | 
			
		||||
under high traffic. Transmission of packets could stop for seconds often
 | 
			
		||||
leading to disconnections.
 | 
			
		||||
 | 
			
		||||
Long research & debugging revelaed a close relation between MCU
 | 
			
		||||
interrupts of type PKT_TYPE_TXS and slowdowns / stalls. That led to
 | 
			
		||||
questioning frames buffering feature.
 | 
			
		||||
 | 
			
		||||
It turns out that disabling SKBs loopback code makes mt7603 devices much
 | 
			
		||||
more stable under load. There are still some traffic hiccups but those
 | 
			
		||||
happen like once every an hour and end up in recovery in most cases.
 | 
			
		||||
 | 
			
		||||
Add a debugfs option for disabling frames buffering so users can give it
 | 
			
		||||
a try. If this solution yields a success we can make this feature
 | 
			
		||||
disabled by default.
 | 
			
		||||
 | 
			
		||||
This change was successfully tested using 2 GHz AP interface on:
 | 
			
		||||
1. Netgear R6220 - MT7621ST (SoC) + MT7603EN (WiFi) + MT7612EN (WiFi)
 | 
			
		||||
2. Xiaomi Mi Router 4C - MT7628AN (Wi-Fi SoC)
 | 
			
		||||
 | 
			
		||||
Link: https://lore.kernel.org/linux-wireless/7c96d5ee-86c1-8068-1b58-40db6087a24f@gmail.com/
 | 
			
		||||
Closes: https://github.com/openwrt/mt76/issues/865
 | 
			
		||||
Fixes: c8846e101502 ("mt76: add driver for MT7603E and MT7628/7688")
 | 
			
		||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
 | 
			
		||||
---
 | 
			
		||||
 mt7603/debugfs.c | 2 ++
 | 
			
		||||
 mt7603/dma.c     | 3 +++
 | 
			
		||||
 mt7603/init.c    | 1 +
 | 
			
		||||
 mt7603/mt7603.h  | 2 ++
 | 
			
		||||
 4 files changed, 8 insertions(+)
 | 
			
		||||
 | 
			
		||||
--- a/mt7603/debugfs.c
 | 
			
		||||
+++ b/mt7603/debugfs.c
 | 
			
		||||
@@ -115,4 +115,6 @@ void mt7603_init_debugfs(struct mt7603_d
 | 
			
		||||
 			    &dev->sensitivity_limit);
 | 
			
		||||
 	debugfs_create_bool("dynamic_sensitivity", 0600, dir,
 | 
			
		||||
 			    &dev->dynamic_sensitivity);
 | 
			
		||||
+	debugfs_create_bool("frames_buffering", 0600, dir,
 | 
			
		||||
+			    &dev->frames_buffering);
 | 
			
		||||
 }
 | 
			
		||||
--- a/mt7603/dma.c
 | 
			
		||||
+++ b/mt7603/dma.c
 | 
			
		||||
@@ -27,6 +27,9 @@ mt7603_rx_loopback_skb(struct mt7603_dev
 | 
			
		||||
 	u32 val;
 | 
			
		||||
 	u8 tid = 0;
 | 
			
		||||
 
 | 
			
		||||
+	if (!dev->frames_buffering)
 | 
			
		||||
+		goto free;
 | 
			
		||||
+
 | 
			
		||||
 	if (skb->len < MT_TXD_SIZE + sizeof(struct ieee80211_hdr))
 | 
			
		||||
 		goto free;
 | 
			
		||||
 
 | 
			
		||||
--- a/mt7603/init.c
 | 
			
		||||
+++ b/mt7603/init.c
 | 
			
		||||
@@ -517,6 +517,7 @@ int mt7603_register_device(struct mt7603
 | 
			
		||||
 	dev->slottime = 9;
 | 
			
		||||
 	dev->sensitivity_limit = 28;
 | 
			
		||||
 	dev->dynamic_sensitivity = true;
 | 
			
		||||
+	dev->frames_buffering = true;
 | 
			
		||||
 
 | 
			
		||||
 	ret = mt7603_init_hardware(dev);
 | 
			
		||||
 	if (ret)
 | 
			
		||||
--- a/mt7603/mt7603.h
 | 
			
		||||
+++ b/mt7603/mt7603.h
 | 
			
		||||
@@ -155,6 +155,8 @@ struct mt7603_dev {
 | 
			
		||||
 	u32 reset_test;
 | 
			
		||||
 
 | 
			
		||||
 	unsigned int reset_cause[__RESET_CAUSE_MAX];
 | 
			
		||||
+
 | 
			
		||||
+	bool frames_buffering;
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
 extern const struct mt76_driver_ops mt7603_drv_ops;
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user