Procházet zdrojové kódy

qcacmn: disable cached descriptor support if NSS is enabled

disable cached descriptor support if NSS is enabled

Change-Id: If0eee42dc07947944e39ef6d98de271ce79419ac
Tallapragada Kalyan před 5 roky
rodič
revize
ae7baa998f
1 změnil soubory, kde provedl 14 přidání a 4 odebrání
  1. 14 4
      dp/wifi3.0/dp_main.c

+ 14 - 4
dp/wifi3.0/dp_main.c

@@ -2686,7 +2686,7 @@ static void dp_enable_verbose_debug(struct dp_soc *soc)
  */
 static int dp_soc_cmn_setup(struct dp_soc *soc)
 {
-	int i;
+	int i, cached;
 	struct hal_reo_params reo_params;
 	int tx_ring_size;
 	int tx_comp_ring_size;
@@ -2736,6 +2736,11 @@ static int dp_soc_cmn_setup(struct dp_soc *soc)
 					FL("dp_srng_setup failed for tcl_data_ring[%d]"), i);
 				goto fail1;
 			}
+
+			/* Disable cached desc if NSS offload is enabled */
+			cached = WLAN_CFG_DST_RING_CACHED_DESC;
+			if (wlan_cfg_get_dp_soc_nss_cfg(soc_cfg_ctx))
+				cached = 0;
 			/*
 			 * TBD: Set IPA WBM ring size with ini IPA UC tx buffer
 			 * count
@@ -2743,7 +2748,7 @@ static int dp_soc_cmn_setup(struct dp_soc *soc)
 			if (dp_srng_setup(soc, &soc->tx_comp_ring[i],
 					  WBM2SW_RELEASE, i, 0,
 					  tx_comp_ring_size,
-					  WLAN_CFG_DST_RING_CACHED_DESC)) {
+					  cached)) {
 				QDF_TRACE(QDF_MODULE_ID_DP,
 					QDF_TRACE_LEVEL_ERROR,
 					FL("dp_srng_setup failed for tx_comp_ring[%d]"), i);
@@ -2791,10 +2796,15 @@ static int dp_soc_cmn_setup(struct dp_soc *soc)
 		QDF_TRACE(QDF_MODULE_ID_DP,
 			QDF_TRACE_LEVEL_INFO,
 			FL("num_reo_dest_rings %d"), soc->num_reo_dest_rings);
+
+		/* Disable cached desc if NSS offload is enabled */
+		cached = WLAN_CFG_DST_RING_CACHED_DESC;
+		if (wlan_cfg_get_dp_soc_nss_cfg(soc_cfg_ctx))
+			cached = 0;
+
 		for (i = 0; i < soc->num_reo_dest_rings; i++) {
 			if (dp_srng_setup(soc, &soc->reo_dest_ring[i], REO_DST,
-					  i, 0, reo_dst_ring_size,
-					  WLAN_CFG_DST_RING_CACHED_DESC)) {
+					  i, 0, reo_dst_ring_size, cached)) {
 				QDF_TRACE(QDF_MODULE_ID_DP,
 					  QDF_TRACE_LEVEL_ERROR,
 					  FL(RNG_ERR "reo_dest_ring [%d]"), i);