浏览代码

qcacmn: pipeline prefetch of tx comp ring for BE

pipeline prefetch of tx comp ring for BE

CRs-Fixed: 3272534
Change-Id: Ib1091b5163e75b56be08fbbf87c26b1c77638b76
Tallapragada Kalyan 2 年之前
父节点
当前提交
3203b7bf92
共有 2 个文件被更改,包括 15 次插入8 次删除
  1. 3 2
      dp/wifi3.0/dp_tx.c
  2. 12 6
      dp/wifi3.0/dp_tx.h

+ 3 - 2
dp/wifi3.0/dp_tx.c

@@ -5236,8 +5236,9 @@ more_data:
 		num_avail_for_reap = quota;
 
 	dp_srng_dst_inv_cached_descs(soc, hal_ring_hdl, num_avail_for_reap);
-	last_prefetched_hw_desc = dp_srng_dst_prefetch(hal_soc, hal_ring_hdl,
-						       num_avail_for_reap);
+	last_prefetched_hw_desc = dp_srng_dst_prefetch_32_byte_desc(hal_soc,
+							    hal_ring_hdl,
+							    num_avail_for_reap);
 
 	/* Find head descriptor from completion ring */
 	while (qdf_likely(num_avail_for_reap--)) {

+ 12 - 6
dp/wifi3.0/dp_tx.h

@@ -431,15 +431,21 @@ void dp_tx_prefetch_hw_sw_nbuf_desc(struct dp_soc *soc,
 	}
 
 	if (num_avail_for_reap && *last_prefetched_hw_desc) {
-		dp_tx_comp_get_prefetched_params_from_hal_desc(
-						soc,
-						*last_prefetched_hw_desc,
-						last_prefetched_sw_desc);
-		*last_prefetched_hw_desc =
-			hal_srng_dst_prefetch_next_cached_desc(
+		soc->arch_ops.tx_comp_get_params_from_hal_desc(soc,
+						       *last_prefetched_hw_desc,
+						       last_prefetched_sw_desc);
+
+		if ((uintptr_t)*last_prefetched_hw_desc & 0x3f)
+			*last_prefetched_hw_desc =
+				hal_srng_dst_prefetch_next_cached_desc(
 					hal_soc,
 					hal_ring_hdl,
 					(uint8_t *)*last_prefetched_hw_desc);
+		else
+			*last_prefetched_hw_desc =
+				hal_srng_dst_get_next_32_byte_desc(hal_soc,
+					hal_ring_hdl,
+					(uint8_t *)*last_prefetched_hw_desc);
 	}
 }
 #else