Parcourir la source

qcacmn: Free the tx descriptors borrowed by DS

Free the tx descriptors borrowed by direct switch
back to regulartx desc pools.

Change-Id: I2898e57ce5eff54c1787dbebd166482d9fbfc585
CRs-Fixed: 3444334
Pavankumar Nandeshwar il y a 2 ans
Parent
commit
a631906ba4
3 fichiers modifiés avec 10 ajouts et 4 suppressions
  1. 0 2
      dp/wifi3.0/be/dp_be.h
  2. 2 0
      dp/wifi3.0/dp_internal.h
  3. 8 2
      dp/wifi3.0/dp_tx.c

+ 0 - 2
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) * \

+ 2 - 0
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
 

+ 8 - 2
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;
 		}