Search Linux Wireless

[PATCH] wifi: mt76: mt7915: fix AX slow upload by disabling AC160

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Fixes slow 802.11ax upload on the RT3200 with mt7915 non DBDC.

In AX mode the AX upstream to the MT7915 radio drops to the slowest
connection mode: MCS0 (zero) single stream NSS1. The issue has been
observed on Apple devices and Intel cards under upload load and with
some obstacles in line of sight and distance to the AP. While under
the same conditions AC speeds would be much better.

"It is probably a firmware blob bug that is being worked around by
disabling AC 160mhz. Unfortunately, even if users select 80mhz AX in
Luci this bug will happen. Basically, without this patch AX is
completely useless for people with affected devices. So in my opinion,
disabling 160mhz AC seems like a small price to pay to solve this bug,
especially since 160mhz AX remains available."

"160 MHz capabilites are out of specification for MT7915. MT7915 was
never advertised with 160 MHz capabilities, our devices here are
instead marketed with 80 MHz bandwith numbers: AX3200 - 80 MHz
channels. Mediatek - the vendor - has completely dropped 160 MHz
channel support for MT7915: [MAC80211][mt76][remove mt7915 BW160
support]

With the out of specification AC VHT160 capability enabled the whole
AX capability is wasted for several users, because it will slow down
some AX capable stations to the slowest AX uplink rates. The user
workaround to switch MT7915 to AC mode works but no AX advantages that
the device was bought for can be used."

Forum thread https://forum.openwrt.org/t/802-11ax-worse-than-802-11ac-with-mt76-driver/126466

Partially reverts
https://patchwork.kernel.org/project/linux-wireless/patch/20230301163739.52314-1-nbd@xxxxxxxx/

Signed-off-by: Anteus <anteus92@xxxxxxxxx>
---
 mt7915/init.c | 1 -
 1 file changed, 1 deletion(-)

--- a/mt7915/init.c
+++ b/mt7915/init.c
@@ -420,7 +420,6 @@ mt7915_init_wiphy(struct mt7915_phy *phy
            if (!dev->dbdc_support)
                vht_cap->cap |=
                    IEEE80211_VHT_CAP_SHORT_GI_160 |
-                   IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160MHZ |
                    FIELD_PREP(IEEE80211_VHT_CAP_EXT_NSS_BW_MASK, 1);
        } else {
            vht_cap->cap |=



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux