Ver Fonte

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
Jinwei Chen há 6 anos atrás
pai
commit
40fafaf4b6
1 ficheiros alterados com 5 adições e 0 exclusões
  1. 5 0
      dp/wifi3.0/dp_rx.c

+ 5 - 0
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);