[Steam Frame] WCN7850/ath12k: Wi-Fi uplink collapses under simultaneous receive (the streaming workload) while a same-AP client does not, breaking Remote Play
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- linux
- Lĩnh vực
- networking, operating-systems
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- Không có dữ liệu ngôn ngữ
- Star
- 2.7k
- Fork
- 89
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của ValveSoftware/SteamOS
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
ValveSoftware/SteamOS#3037 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
ValveSoftware/SteamOS#2983 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
ValveSoftware/SteamOS#2927 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
ValveSoftware/SteamOS#2875 · 1 bình luận ·
-
steam-short-session-tracker: incorrect registry backup path resets settings during automatic repairĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 80/100
ValveSoftware/SteamOS#2829 ·
Tất cả issue của ValveSoftware/SteamOS
Issue tương tự
-
[BUG] IP 质量类型误判:ISP 静态段被显示为机房Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
-
complexity: easy good first issue impact: low
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
ueberdosis/hocuspocus#1211 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
kind/bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
krahabb/meross_lan#740 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 4 ngày