#1132448 firmware-mediatek: Wifi perf degraded a lot after upgrade firmware-mediatek from 20250410-2 to 20260221-1~bpo13+1 and 20260309-1

#1132448#5
Date:
2026-04-01 06:26:57 UTC
From:
To:
Wifi perf degraded a lot after upgrade firmware-mediatek from 20250410-2 to
20260221-1~bpo13+1 and 20260309-1.
With the new firmware, the wifi iperf3 test speed is around 100MB/s within 1
minute connected to a wireless router, but it gradually downgrades to 10MB/s,
router iperf3 sends, pc receives.
After downgraded firmware-mediatek to 20250410-2, the problem is gone.

Please see also these similar reports:

https://www.reddit.com/r/archlinux/comments/1rsk5od/for_those_having_network_speed_issues_with_a/
https://bbs.archlinux.org/viewtopic.php?id=312031

#1132448#10
Date:
2026-04-03 01:43:31 UTC
From:
To:
debian firmware-nonfree version 20251125-1 works.

I built firmware-mediatek  20251125-1 from source code, and tested it, doesn't have this speed downgrade bug.

#1132448#15
Date:
2026-04-03 02:50:03 UTC
From:
To:
For anyone who want to build firmware-mediatek 20251125-1, you can follow these steps converted from firmware-nonfree/debian/salsa-ci.yml:


```sh
#!/bin/bash

set -x

if [ ! -d "firmware-nonfree/.git" ]; then
    git clone https://salsa.debian.org/kernel-team/firmware-nonfree.git
fi

cd firmware-nonfree || exit 1

git branch
git status
# git checkout .
git checkout debian/20251125-1
git status
git clean -dfx
git status

WORKING_DIR=build

sudo apt-get update
sudo apt-get install --no-install-recommends -y devscripts git
USCAN_VCS_EXPORT_UNCOMPRESSED=yes origtargz -dt

# Install dependencies of gencontrol.py and debian/rules orig
sudo apt-get update

sudo apt-get install --no-install-recommends -y \
    debhelper \
    python3 \
    python3-dacite \
    python3-jinja2 \
    quilt \
    rdfind \
    rsync

version=$(dpkg-parsechangelog -SVersion)
upstream_version=$(echo $version | sed 's/-[^-]*$//')

# Merge upstream source
debian/rules orig

# Fudge source version and suite *before* gencontrol.py
sed -i -e '1 s/+salsaci//g' debian/changelog
sed -i -e '1 s/) [^;]*/+salsaci) UNRELEASED/' debian/changelog
version=${version}+salsaci

# Run gencontrol.py
# - create temporary log
log="$(mktemp)"
# - invoke debian/control-real rule and log output

rc=0; debian/rules debian/control-real >"$log" 2>&1 || rc=$?
cat "$log"
# - check for success message and error code
test $rc = 2
grep -q 'been generated SUCCESSFULLY' "$log"

dpkg-buildpackage -uc -us -S -sa -d
mkdir -p ${WORKING_DIR}
mv ../firmware-nonfree_${upstream_version}.orig.tar.xz ../firmware-nonfree_${version}.dsc ../firmware-nonfree_${version}.debian.tar.xz ../firmware-nonfree_${version}_source.buildinfo ../firmware-nonfree_${version}_source.changes ${WORKING_DIR}

dpkg-buildpackage -nc -b -us -uc

mv ${WORKING_DIR}/*.orig.tar.xz ../

```

#1132448#20
Date:
2026-04-03 03:09:45 UTC
From:
To:
Hi Ben,

Should I report this bug to upstream?
Do you know how to report it to upstream?

Thanks
Bob

#1132448#27
Date:
2026-04-08 18:13:57 UTC
From:
To:
Hi Bob,

Yes, this should be reported to upstream.  You should send a single
email to all of:

    linux-firmware@kernel.org
    Allan Wang <allan.wang@mediatek.com>
    Chris Lu <chris.lu@mediatek.com>
    1132448@bugs.debian.org

Make sure to specify which specific WiFi chip is involved (lsusb or
lspci should show you that).

Ben.

#1132448#32
Date:
2026-04-10 08:49:17 UTC
From:
To:
Hi Linux Firmware Developers,

MEDIATEK MT7922 wifi perf degraded a lot after upgrade firmware-mediatek from 20250410-2 to 20260221-1~bpo13+1 or 20260309-1 of debian.

With the new firmware, the wifi iperf3 test speed is around 100MB/s within 1
minute after connected to a wireless router, but it gradually degrades to 10MB/s,
router iperf3 sends, pc receives.
Router: iperf3 -s
PC: iperf3 -c riehyp -t 3600 -R

After downgraded firmware-mediatek to 20250410-2, the problem is gone.

Please see also these similar reports:


https://www.reddit.com/r/archlinux/comments/1rsk5od/for_those_having_network_speed_issues_with_a/

https://bbs.archlinux.org/viewtopic.php?id=312031

The most updated work version on archlinux is 20251125-2.
On debian you need to build 20251125 yourself, but it did work with no speed downgrade issue.

On version 20260221-1~bpo13+1 and 20260309-1, after the wifi speed downgraded to 10MB/s,
if I run bluetoothctl scan on periodically, the speed can go back to 100MB/s.

My kernel version is 6.19.10 amd64

# lspci -vvv -s 0c:00.0
0c:00.0 Network controller: MEDIATEK Corp. MT7922 802.11ax PCI Express Wireless Network Adapter
      Subsystem: MEDIATEK Corp. MT7922 802.11ax PCI Express Wireless Network Adapter
      Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
      Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
      Latency: 0, Cache Line Size: 64 bytes
      Interrupt: pin A routed to IRQ 180
      IOMMU group: 19
      Region 0: Memory at fcf5000000 (64-bit, prefetchable) [size=1M]
      Region 2: Memory at a0300000 (64-bit, non-prefetchable) [size=32K]
      Capabilities: [80] Express (v2) Endpoint, IntMsgNum 0
            DevCap:     MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
                  ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 26W TEE-IO-
            DevCtl:     CorrErr+ NonFatalErr+ FatalErr+ UnsupReq+
                  RlxdOrd- ExtTag+ PhantFunc- AuxPwr- NoSnoop+ FLReset-
                  MaxPayload 128 bytes, MaxReadReq 512 bytes
            DevSta:     CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
            LnkCap:     Port #1, Speed 5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <2us, L1 <8us
                  ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
            LnkCtl:     ASPM L1 Enabled; RCB 64 bytes, LnkDisable- CommClk+
                  ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- FltModeDis-
            LnkSta:     Speed 5GT/s, Width x1
                  TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
            DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ NROPrPrP- LTR+
                   10BitTagComp- 10BitTagReq- OBFF Not Supported, ExtFmt+ EETLPPrefix-
                   EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
                   FRS- TPHComp- ExtTPHComp-
                   AtomicOpsCap: 32bit- 64bit- 128bitCAS-
            DevCtl2: Completion Timeout: 260ms to 900ms, TimeoutDis-
                   AtomicOpsCtl: ReqEn-
                   IDOReq- IDOCompl- LTR+ EmergencyPowerReductionReq-
                   10BitTagReq- OBFF Disabled, EETLPPrefixBlk-
            LnkCap2: Supported Link Speeds: 2.5-5GT/s, Crosslink- Retimer- 2Retimers- DRS-
            LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
                   Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                   Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot
            LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete- EqualizationPhase1-
                   EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
                   Retimer- 2Retimers- CrosslinkRes: unsupported, FltMode-
      Capabilities: [e0] MSI: Enable+ Count=1/32 Maskable+ 64bit+
            Address: 00000000fee00000  Data: 0000
            Masking: fffffffe  Pending: 00000000
      Capabilities: [f8] Power Management version 3
            Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
            Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
      Capabilities: [100 v1] Vendor Specific Information: ID=1556 Rev=1 Len=008 <?>
      Capabilities: [108 v1] Latency Tolerance Reporting
            Max snoop latency: 0ns
            Max no snoop latency: 0ns
      Capabilities: [110 v1] L1 PM Substates
            L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
                    PortCommonModeRestoreTime=3us PortTPowerOnTime=52us
            L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
                     T_CommonMode=0us LTR1.2_Threshold=284672ns
            L1SubCtl2: T_PwrOn=150us
      Capabilities: [200 v2] Advanced Error Reporting
            UESta:      DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP-
                  ECRC- UnsupReq- ACSViol- UncorrIntErr- BlockedTLP- AtomicOpBlocked- TLPBlockedErr-
                  PoisonTLPBlocked- DMWrReqBlocked- IDECheck- MisIDETLP- PCRC_CHECK- TLPXlatBlocked-
            UEMsk:      DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP-
                  ECRC- UnsupReq- ACSViol- UncorrIntErr+ BlockedTLP- AtomicOpBlocked- TLPBlockedErr-
                  PoisonTLPBlocked- DMWrReqBlocked- IDECheck- MisIDETLP- PCRC_CHECK- TLPXlatBlocked-
            UESvrt:     DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+
                  ECRC- UnsupReq- ACSViol- UncorrIntErr+ BlockedTLP- AtomicOpBlocked- TLPBlockedErr-
                  PoisonTLPBlocked- DMWrReqBlocked- IDECheck- MisIDETLP- PCRC_CHECK- TLPXlatBlocked-
            CESta:      RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr- CorrIntErr- HeaderOF-
            CEMsk:      RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+ CorrIntErr+ HeaderOF-
            AERCap:     First Error Pointer: 00, ECRCGenCap- ECRCGenEn- ECRCChkCap- ECRCChkEn-
                  MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
            HeaderLog: 00000000 00000000 00000000 00000000
      Kernel driver in use: mt7921e
      Kernel modules: mt7921e

Openwrt router wlan:

         Mode: Master  Channel: 36 (5.180 GHz)  HT Mode: HE160
         Center Channel 1: 50 2: unknown
         Tx-Power: 23 dBm  Link Quality: 51/70
         Signal: -59 dBm  Noise: -92 dBm
         Bit Rate: 2401.9 MBit/s
         Encryption: SAE / WPA-PSK / WPA-PSK-SHA256 (CCMP)
         Type: nl80211  HW Mode(s): 802.11ax/ac/n
         Hardware: embedded [MediaTek MT7986]
         TX power offset: none
         Channel offset: none
         Supports VAPs: yes  PHY name: phy1

Thanks
Bob