From 40fafaf4b68fa595bb61beb5a9024f1555513182 Mon Sep 17 00:00:00 2001 From: Jinwei Chen Date: Wed, 21 Nov 2018 10:18:27 +0800 Subject: [PATCH] qcacmn: fix REO2SW ring full issue When reap data from REO2SW ring and if the TP catches up to cached HP, current logic will update HP again and give a second chance to reap data. but the TP is not updated to ring register, if more data is received on this ring then HP easily catches up to TP and the ring is full. Update TP as well if HP get chance be updated. Change-Id: I92f381d2a31f3be987866a829e05b5578098649a CRs-Fixed: 2334435 --- dp/wifi3.0/dp_rx.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/dp/wifi3.0/dp_rx.c b/dp/wifi3.0/dp_rx.c index b5daf319381b..5598d5c64c0d 100644 --- a/dp/wifi3.0/dp_rx.c +++ b/dp/wifi3.0/dp_rx.c @@ -1415,6 +1415,11 @@ uint32_t dp_rx_process(struct dp_intr *int_ctx, void *hal_ring, if (!ring_desc) break; DP_STATS_INC(soc, rx.hp_oos, 1); + /* + * update TP here in case loop takes long, + * then the ring is easily full. + */ + hal_srng_access_end_unlocked(hal_soc, hal_ring); } error = HAL_RX_ERROR_STATUS_GET(ring_desc);