diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index 2f4c86b23afa..7551d7205444 100644 --- a/dp/wifi3.0/dp_main.c +++ b/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);