ath11k: Process full monitor mode rx support
authorAnilkumar Kolli <akolli@codeaurora.org>
Wed, 8 Dec 2021 08:44:00 +0000 (10:44 +0200)
committerKalle Valo <quic_kvalo@quicinc.com>
Thu, 9 Dec 2021 08:10:33 +0000 (10:10 +0200)
commit7e2ea2e947046834a450295dfd328adb70a9f864
tree9d8b7e418711b94e692ed0057307c7d20e8cd00e
parent88ee00d130f744854cdd91ad76a888d9e66996d1
ath11k: Process full monitor mode rx support

In full monitor mode, monitor destination ring is read before monitor
status ring. mon_dst_ring has ppdu id, reap till the end of PPDU. Add
all the MPDUs to list. Start processing the status ring, if PPDU id in
status ring is lagging behind, reap the status ring, once the PPDU ID
matches, deliver the MSDU to upper layer. If status PPDU id leading,
reap the mon_dst_ring.

The advantage with full monitor mode is hardware has status buffers
available for all the MPDUs in mon_dst_ring, which makes it possible
to deliver more frames to be seen on sniffer.

Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.4.0.1-01734-QCAHKSWPL_SILICONZ-1

Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/1638881695-22155-4-git-send-email-akolli@codeaurora.org
drivers/net/wireless/ath/ath11k/dp.c
drivers/net/wireless/ath/ath11k/dp.h
drivers/net/wireless/ath/ath11k/dp_rx.c