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:
		| @@ -1,16 +1,16 @@ | |||||||
| include $(TOPDIR)/rules.mk | include $(TOPDIR)/rules.mk | ||||||
|  |  | ||||||
| PKG_NAME:=mt76 | PKG_NAME:=mt76 | ||||||
| PKG_RELEASE=2 | PKG_RELEASE=1 | ||||||
|  |  | ||||||
| PKG_LICENSE:=GPLv2 | PKG_LICENSE:=GPLv2 | ||||||
| PKG_LICENSE_FILES:= | PKG_LICENSE_FILES:= | ||||||
|  |  | ||||||
| PKG_SOURCE_URL:=https://github.com/openwrt/mt76 | PKG_SOURCE_URL:=https://github.com/openwrt/mt76 | ||||||
| PKG_SOURCE_PROTO:=git | PKG_SOURCE_PROTO:=git | ||||||
| PKG_SOURCE_DATE:=2024-03-18 | PKG_SOURCE_DATE:=2024-04-03 | ||||||
| PKG_SOURCE_VERSION:=2135e201e7a9339e018d4e2d4a33c73266e674d7 | PKG_SOURCE_VERSION:=1e336a8582dce2ef32ddd440d423e9afef961e71 | ||||||
| PKG_MIRROR_HASH:=530db8a70d18295677989aafc9c1757b151ef77e359985417f1d36e7d2415d33 | PKG_MIRROR_HASH:=f3801af80d5f9c1aa266c9401d4dfa2d501df0382c81fd249150e17dddc70936 | ||||||
|  |  | ||||||
| PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name> | PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name> | ||||||
| PKG_USE_NINJA:=0 | 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; |  | ||||||
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau