diff --git a/dp/wifi3.0/be/dp_be.h b/dp/wifi3.0/be/dp_be.h index 75e61bae86..f6e2458a8f 100644 --- a/dp/wifi3.0/be/dp_be.h +++ b/dp/wifi3.0/be/dp_be.h @@ -107,8 +107,6 @@ enum CMEM_MEM_CLIENTS { /* The MAX PPE PRI2TID */ #define DP_TX_INT_PRI2TID_MAX 15 -#define DP_TX_PPEDS_POOL_ID 0 - /* size of CMEM needed for a ppeds tx desc pool */ #define DP_TX_PPEDS_DESC_POOL_CMEM_SIZE \ ((WLAN_CFG_NUM_PPEDS_TX_DESC_MAX / DP_CC_SPT_PAGE_MAX_ENTRIES) * \ diff --git a/dp/wifi3.0/dp_internal.h b/dp/wifi3.0/dp_internal.h index 1e5306149b..fa0a10f5ed 100644 --- a/dp/wifi3.0/dp_internal.h +++ b/dp/wifi3.0/dp_internal.h @@ -31,6 +31,8 @@ #define DP_BLOCKMEM_SIZE 4096 #define WBM2_SW_PPE_REL_RING_ID 6 #define WBM2_SW_PPE_REL_MAP_ID 11 +#define DP_TX_PPEDS_POOL_ID 0xF + /* Alignment for consistent memory for DP rings*/ #define DP_RING_BASE_ALIGN 32 diff --git a/dp/wifi3.0/dp_tx.c b/dp/wifi3.0/dp_tx.c index 1a94d34941..721693ee03 100644 --- a/dp/wifi3.0/dp_tx.c +++ b/dp/wifi3.0/dp_tx.c @@ -5646,8 +5646,14 @@ dp_tx_comp_process_desc_list(struct dp_soc *soc, dp_tx_update_ppeds_tx_comp_stats(soc, txrx_peer, &ts, desc, ring_id); - nbuf = dp_ppeds_tx_desc_free(soc, desc); - dp_tx_nbuf_dev_queue_free_no_flag(&h, nbuf); + if (desc->pool_id != DP_TX_PPEDS_POOL_ID) { + nbuf = desc->nbuf; + dp_tx_nbuf_dev_queue_free_no_flag(&h, nbuf); + dp_tx_desc_free(soc, desc, desc->pool_id); + } else { + nbuf = dp_ppeds_tx_desc_free(soc, desc); + dp_tx_nbuf_dev_queue_free_no_flag(&h, nbuf); + } desc = next; continue; }