[Steam Frame] WCN7850/ath12k: Wi-Fi uplink collapses under simultaneous receive (the streaming workload) while a same-AP client does not, breaking Remote Play
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- linux
- Ambito
- networking, operating-systems
Direzione di ricerca
Start with the linked reproduction scripts, repro/bidir.sh and repro/read-ath12k-fw-stats.sh, and compare the Steam Frame measurements with the control laptop on the same AP and wired host. The issue points to ath12k firmware behavior but says the relevant firmware code is unavailable for inspection. Done would require identifying a firmware or driver change that prevents the uplink collapse during simultaneous receive and verifying it with the reproduction.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Your system information
- Steam client version: public beta branch
linux_arm64_publicbeta, BuildId 20261022 - SteamOS version: SteamOS 0.5.7 (BUILD_ID 20261103.6153824, variant
vr), Steam Frame; kernel 7.2.0-g9a8c8ea46950 (aarch64) - Opted into Steam client beta?: Yes (
linux_arm64_publicbeta) - Opted into SteamOS beta?: Yes (branch
beta) - Have you checked for updates in Settings > System?: Yes
Hardware: Steam Frame. Wi-Fi: Qualcomm WCN7850 (FastConnect 7800) [17cb:1107], ath12k driver, firmware WLAN.IOE_HMT.1.1-00018-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1 (fw_version 0x110a0012, built 2025-08-20).
Please describe your issue in as much detail as possible:
Each direction of Wi-Fi is fine on its own. Uplink alone runs 40 to 145 Mbit/s, downlink alone about 90. Run them together and the uplink falls apart. That is the streaming case exactly: video coming down to the headset while it sends input, audio and ACKs back up. When the up path dies, the host's bandwidth estimate drops and it throttles the video, which is the stutter.
Here is the control that convinced me it is the headset and not my network. Same AP, same wired target, same tool, one right after the other:
| client | uplink (concurrent) | downlink (concurrent) | uplink solo |
|---|---|---|---|
| control laptop (MacBook) | 806 Mbit/s | 150 Mbit/s | 726 |
| Steam Frame | 3.8 Mbit/s | 60 Mbit/s | ~133 |
The laptop pushes ~950 Mbit/s both ways at once and never stumbles. The Frame, on the same AP to the same wired PC with the same tool, drops its uplink to 3.8 Mbit/s the instant it also has to receive. So this is the Frame's radio, not the router, the path, or how I measured it. It reads like a transmit-vs-receive arbitration problem in the WCN7850: the TX path loses to RX when both are live.
I checked the obvious alternatives, each with a measurement:
- Router / path / method: the laptop is fine on the identical setup, so none of these.
- Rate control:
iw dev wlan0 set bitratesis rejected, so the rate is firmware-owned, not something I can pin. - The hardware TX scheduler (HWSCH):
hwsch_reset_countdoes not move during the collapse, andhwsch_misaligned_offset_receivedkeeps climbing even during a healthy 140 Mbit/s transmit, so that counter is noise, not the fault. - A firmware crash: none this boot. No coredump, no MHI reset, no
time out while waiting for fw stats done. - Driver TX errors: zero over 30 hours, including with full DP_TX debug on.
- Signal, channel, thermal, PCIe, power save, Bluetooth coexistence, scanning, ASPM: all measured, none of them.
I put everything in a repo: the per-second numbers, a one-command reproduction, and a ready-to-send Qualcomm ticket. https://github.com/theTechGoose/steamframe-wcn7850-tx-stall
This looks related to #2831 (same chip, same firmware build), which is a crash-then-degrade variant on 6 GHz / 160 MHz. The difference here is that it reproduces on demand with no crash, which should make it easier to work with.
I did try to find the exact spot in the firmware, the way the recent Steam Frame wake-on-LAN issue was tracked down. Static analysis cannot reach it this time. amss.bin is paged (dlpager) and patches on-chip ROM, and it logs through QSHRINK message IDs rather than string pointers, so the transmit and scheduler code is not plaintext in the image and nothing in the file references the diagnostic strings. Pinning the actual instruction needs the ROM and the QSHRINK database, which only Qualcomm has.
So the questions that would move this are really for them:
- Is this a known issue on this WCN7850 firmware line, where transmit starves while receive is active?
- Is there a newer firmware image I can try on the Frame?
- Is there a driver-side setting I could toggle to narrow it down without a firmware change? I am thinking HE/EHT feature bits, UL OFDMA or MU, aggregation, MU-EDCA, or RTS/CTS.
The headset is set up for testing with a saved baseline per configuration, so I can turn things around quickly. Send me a firmware image or a driver patch and I will run it. I can also grab whatever's useful on the way: htt_stats dumps, a coredump (CONFIG_ATH12K_COREDUMP=y is already set), trace-cmd, or a capture from the AP.
Steps for reproducing this issue:
- Put the Steam Frame and a healthy control laptop on the same 5 GHz AP, and pick a wired host on the same LAN as the target.
- For the Frame, measure uplink alone, downlink alone, then both at once (
repro/bidir.shin the repo runs all three). Uplink alone is 40 to 145 Mbit/s; both at once, the uplink drops to single digits. - Repeat with the laptop as the client. It holds both directions (about 806 up and 150 down at the same time).
- On the Frame as root,
repro/read-ath12k-fw-stats.shshowshwsch_reset_countsitting still through the collapse, which is what rules out the hardware scheduler.
- Lingua principale
- Nessun dato sulla lingua
- Stelle
- 2.7k
- Fork
- 89
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di ValveSoftware/SteamOS
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
ValveSoftware/SteamOS#3037 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
ValveSoftware/SteamOS#2983 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
ValveSoftware/SteamOS#2927 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
ValveSoftware/SteamOS#2875 · 1 commento ·
-
steam-short-session-tracker: incorrect registry backup path resets settings during automatic repairAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
ValveSoftware/SteamOS#2829 ·
Tutte le issue di ValveSoftware/SteamOS
Issue simili
-
complexity: easy good first issue impact: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
ueberdosis/hocuspocus#1211 ·
I maintainer di solito rispondono entro 1 giorno
-
kind/bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
krahabb/meross_lan#740 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 4 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
FujiNetWIFI/fujinet-firmware#2341 ·
I maintainer di solito rispondono entro 1 giorno