[PATCHv5] wifi: ath11k: skip status ring entry processing

Kalle Valo kvalo at kernel.org
Tue May 7 03:00:17 PDT 2024


Tamizh Chelvam Raja <quic_tamizhr at quicinc.com> wrote:

> If STATUS_BUFFER_DONE is not set for a monitor status ring entry,
> we don't process the status ring until STATUS_BUFFER_DONE set
> for that status ring entry.
> 
> During LMAC reset it may happen that hardware will not write
> STATUS_BUFFER_DONE tlv in status buffer, in that case we end up
> waiting for STATUS_BUFFER_DONE leading to backpressure on monitor
> status ring.
> 
> To fix the issue, when HP (Head Pointer) + 1 entry is peeked and if DMA is not
> done and if HP + 2 entry's DMA done is set, replenish HP + 1 entry and start
> processing in next interrupt. If HP + 2 entry's DMA done is not set, poll onto
> HP + 1 entry DMA done to be set.
> 
> Also, during monitor attach HP points to the end of the ring and TP (Tail
> Pointer) points to the start of the ring.  Using ath11k_hal_srng_src_peek() may
> result in processing invalid buffer for the very first interrupt. Since, HW
> starts writing buffer from TP.
> 
> To avoid this issue call ath11k_hal_srng_src_next_peek() instead of
> calling ath11k_hal_srng_src_peek().
> 
> Tested-on: IPQ5018 hw1.0 AHB WLAN.HK.2.6.0.1-00861-QCAHKSWPL_SILICONZ-1
> 
> Signed-off-by: Venkateswara Naralasetty <quic_vnaralas at quicinc.com>
> Co-developed-by: Tamizh Chelvam Raja <quic_tamizhr at quicinc.com>
> Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr at quicinc.com>
> Signed-off-by: Kalle Valo <quic_kvalo at quicinc.com>

Patch applied to ath-next branch of ath.git, thanks.

4c2b796be3a1 wifi: ath11k: skip status ring entry processing

-- 
https://patchwork.kernel.org/project/linux-wireless/patch/20240429073624.736147-1-quic_tamizhr@quicinc.com/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches




More information about the ath11k mailing list