Skip to content

SM8750: fix wcn7860 crash on passive multi-band Wi-Fi scan - #3171

Open
slaide wants to merge 2 commits into
ROCKNIX:nextfrom
slaide:sm8750-ath12k-passive-scan-crash
Open

SM8750: fix wcn7860 crash on passive multi-band Wi-Fi scan#3171
slaide wants to merge 2 commits into
ROCKNIX:nextfrom
slaide:sm8750-ath12k-passive-scan-crash

Conversation

@slaide

@slaide slaide commented Aug 12, 2026

Copy link
Copy Markdown

Summary

  • What is the goal of this PR? (e.g. Bump up an emulator version, implement a new feature. )

fully passive wifi scans across 2.4ghz + 5/6ghz bands, like the iwd scan running every 30s, crash the wcn7860 firmware, stop doing that (stop crashing, not stop scanning).
also, a scan request carrying too many channels may return an incomplete list of APs, fixed by chunking scan requests.

Testing

  • How was this tested? (e.g. Built and tested on specific devices, manual testing steps, URLs for CI/CD build artifacts.)
  • Test results: (e.g. Screenshots, logs, performance metrics if applicable.)

tested on the konkr pocket fit elite.
iwd runs a no-probe scan every 30s, which ath12k maps to a fully passive scan. this crashes the wcn7860 firmware. with this change, ath12k does not add the fully_passive flag to no-probe scans if the scan spans multiple bands, fixing the crash.
the channel scan results previously failed to find certain access points, now all APs in range are found.

Additional Context

  • Add any other information that might be helpful for the reviewer (e.g., performance implications, potential risks, specific areas to focus on.)

i dont know why the firmware crashes with a fully passive scan across multiple bands. fully passive on a single band is fine, active across single or multiple is also fine.
also, once again I dont know which devices to constrain this to, similar to #3170

wcn7860 firmware version on my device is WLAN.GNG.1.0-04065-QCAGNGSWPL_V1.0_V2.0_SILICONZ-1


AI Usage

While ROCKNIX doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it
helps set the right context for reviewers.

Did you use AI tools to help write this code? YES | PARTIALLY | NO

yes

Device patch 0615: in ath12k_mac_initiate_hw_scan(), skip
WMI_SCAN_FLAG_PASSIVE when a scan with no SSIDs spans 2.4 GHz and
5/6 GHz. Per-channel passive and DFS flags from WMI_SCAN_CHAN_LIST
still apply, so channels that may not be probed still are not probed.

- keyed to hw_rev ATH12K_HW_WCN7860_HW20
- iwd's periodic scan sends no SSIDs, so this fired every 30 s
Adds 0616. The wcn7860 firmware stops handing up management frames
once a scan request carries too many channels, so APs in range never
reach the results. Against a -47 dBm AP at the same 54 ms dwell: 8
channels gave 60 frames and found it, 20 gave 24 and did not.

ath12k_mac_scan_start_chunk() issues 8 channels per WMI scan and
ath12k_scan_vdev_clean_work() chains the next chunk instead of
reporting completion. Full-channel scans find the AP 7/8, was 0/8.
@slaide
slaide force-pushed the sm8750-ath12k-passive-scan-crash branch from ebcc351 to 9cad71b Compare August 14, 2026 12:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants