瀏覽代碼

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 6 年之前
父節點
當前提交
40fafaf4b6
共有 1 個文件被更改,包括 5 次插入0 次删除
  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);