diff options
author | 2025-04-21 10:34:41 +0800 | |
---|---|---|
committer | 2025-05-16 12:38:55 -0700 | |
commit | 72bfbf19b7da6edc6db1d8ea81751ee6d31fe2f2 (patch) | |
tree | a957c5f3df42efe9b96ce77b776bd475d8a86988 /tools/perf/scripts/python/call-graph-from-postgresql.py | |
parent | wifi: ath12k: use ath12k_buffer_addr in ath12k_dp_rx_link_desc_return() (diff) | |
download | wireguard-linux-72bfbf19b7da6edc6db1d8ea81751ee6d31fe2f2.tar.xz wireguard-linux-72bfbf19b7da6edc6db1d8ea81751ee6d31fe2f2.zip |
wifi: ath12k: add support to reap and process mon dest ring
WCN7850 uses error dst ring as mon dest ring. Each time hardware
receives a packet, will fill the payload into mon dest ring.
The mon dest ring may store many MSDUs, which belonged to different
MPDUs. Need to retrieve MSDUs based on the PPDU ID, only processing the
MSDUs with same PPDU ID each time.
The PPDU ID is used in cycles, the difference between the PPDU IDs
of the two rings must be checked. If the status PPDU ID minus the
dest PPDU ID is greater than 20000, it is considered a wrap-around
case.
After reaping the mon dest ring, should prepare packet and deliver it to
mac80211 when status PPDU ID is equal to dest PPDU ID. Then start to
process next PPDU if exists.
But if dest PPDU ID > status PPDU ID, should hold on to mon dest ring
processing. If it exceeds 16 consecutive times, status PPDU ID will be
forcibly set to dest PPDU ID to avoid backpressure issue.
Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1
Signed-off-by: Kang Yang <kang.yang@oss.qualcomm.com>
Reviewed-by: Vasanthakumar Thiagarajan <vasanthakumar.thiagarajan@oss.qualcomm.com>
Link: https://patch.msgid.link/20250421023444.1778-11-kang.yang@oss.qualcomm.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
Diffstat (limited to '')
0 files changed, 0 insertions, 0 deletions