Summary
ASUS ROG Zephyrus G15 GA503RM (AMD Ryzen 9 6900HS, BIOS GA503RM.319), integrated MT7922 [14c3:7922]. The firmware TX power table shows tmac = 4 (0.5 dB units ≈ 2 dBm) for every OFDM/HT/VHT/HE rate while the eeprom rows allow 32–40 (16–20 dBm). Under load: ~50% tx retries at −42 dBm on a clean, exclusive channel; TCP throughput plateaus around 440–550 Mbps. Same laptop on Windows 11, same AP/channel: ~600 Mbps. Carried over from openwrt/mt76#1107 at @morrownr's request.
6m 9m 12m 18m 24m 36m 48m 54m
OFDM (eeprom) : 39 39 39 39 36 36 36 34
OFDM (tmac) : 4 4 4 4 4 4 4 4
Environment
- Kernel 7.1.4 mainline (also reproduced on Ubuntu 7.0.0-28)
- morrownr/mt76 installed via
install-driver.sh, verified with check-driver.sh (all 5 _git modules, device bound to mt7921e_git)
- Firmware
WIFI_RAM_CODE_MT7922_1.bin build 20260605 (also reproduced on 20260224)
- Regdomain US (30 dBm allowed on the test channel, 5 GHz ch 157/80 MHz)
iw dev wlan0 info reports txpower 3.00 dBm
Reproduce
- Associate to a 5 GHz AP, US regdomain.
cat /sys/kernel/debug/ieee80211/phy*/mt76/txpower_sku → observe tmac=4 across all rate rows.
- Load test (12 parallel HTTP downloads), sample
iw dev wlan0 station dump deltas → tx retries ≈ 50% of tx packets; throughput 440–550 Mbps vs ~600 on Windows on the same AP.
Already ruled out (no effect on tmac)
disable_clc=1 with the full mt76 module stack unloaded first (this fixed Debian bug #1105211 on an ASUS Vivobook with the same chip — different platform, different outcome)
- ACPI SAR: DSDT has MTCL/MTDS/MTGS; MTDS static limits decode to 8–14.5 dBm; binary-patched MTDS to 22 dBm via initrd ACPI table upgrade (verified live in
/sys/firmware/acpi/tables/DSDT) — tmac unchanged
iw dev wlan0 set txpower fixed 2000 (accepted, no effect), iw phy set sar_specs (no SAR capability advertised), regdomain re-set
- deep-sleep=0 / runtime-pm=0 via debugfs (helps throughput slightly; tmac unchanged), NM powersave off, Bluetooth rfkill'd, ASPM disabled
- CPU >90% idle during tests; scans show the channel exclusive to this AP
Questions
- Is
tmac the final per-rate limit programmed into the MAC, or an offset/backoff table?
- If final: what input besides eeprom / CLC / regdomain / ACPI SAR can drive it to 4 on this platform?
Full txpower_sku dump, eeprom dump, ACPI tables, and monitor-mode pcaps available on request.
Summary
ASUS ROG Zephyrus G15 GA503RM (AMD Ryzen 9 6900HS, BIOS GA503RM.319), integrated MT7922
[14c3:7922]. The firmware TX power table showstmac = 4(0.5 dB units ≈ 2 dBm) for every OFDM/HT/VHT/HE rate while theeepromrows allow 32–40 (16–20 dBm). Under load: ~50% tx retries at −42 dBm on a clean, exclusive channel; TCP throughput plateaus around 440–550 Mbps. Same laptop on Windows 11, same AP/channel: ~600 Mbps. Carried over from openwrt/mt76#1107 at @morrownr's request.Environment
install-driver.sh, verified withcheck-driver.sh(all 5_gitmodules, device bound tomt7921e_git)WIFI_RAM_CODE_MT7922_1.binbuild 20260605 (also reproduced on 20260224)iw dev wlan0 inforeportstxpower 3.00 dBmReproduce
cat /sys/kernel/debug/ieee80211/phy*/mt76/txpower_sku→ observe tmac=4 across all rate rows.iw dev wlan0 station dumpdeltas → tx retries ≈ 50% of tx packets; throughput 440–550 Mbps vs ~600 on Windows on the same AP.Already ruled out (no effect on tmac)
disable_clc=1with the full mt76 module stack unloaded first (this fixed Debian bug #1105211 on an ASUS Vivobook with the same chip — different platform, different outcome)/sys/firmware/acpi/tables/DSDT) — tmac unchangediw dev wlan0 set txpower fixed 2000(accepted, no effect),iw phy set sar_specs(no SAR capability advertised), regdomain re-setQuestions
tmacthe final per-rate limit programmed into the MAC, or an offset/backoff table?Full txpower_sku dump, eeprom dump, ACPI tables, and monitor-mode pcaps available on request.