Ver Fonte

qcacmn: Add WDI event for tx completion for packet capture mode

Add WDI event and call wdi event handler for tx completion for
packet capture mode.

Change-Id: I99225dda53effc6ab5a80a32aa8aa082543855b2
CRs-Fixed: 2844724
Vulupala Shashank Reddy há 4 anos atrás
pai
commit
0366025b7f
3 ficheiros alterados com 35 adições e 0 exclusões
  1. 1 0
      dp/inc/cdp_txrx_stats_struct.h
  2. 22 0
      dp/wifi3.0/dp_tx.c
  3. 12 0
      dp/wifi3.0/dp_tx.h

+ 1 - 0
dp/inc/cdp_txrx_stats_struct.h

@@ -363,6 +363,7 @@ enum WDI_EVENT {
 	WDI_EVENT_RX_MPDU,
 	WDI_EVENT_HMWDS_AST_ADD_STATUS,
 	WDI_EVENT_PEER_QOS_STATS,
+	WDI_EVENT_PKT_CAPTURE_TX_DATA,
 	/* End of new event items */
 	WDI_EVENT_LAST
 };

+ 22 - 0
dp/wifi3.0/dp_tx.c

@@ -3815,6 +3815,25 @@ static inline void dp_tx_sojourn_stats_process(struct dp_pdev *pdev,
 }
 #endif
 
+#ifdef WLAN_FEATURE_PKT_CAPTURE_LITHIUM
+/**
+ * dp_send_completion_to_pkt_capture() - send tx completion to packet capture
+ * @soc: dp_soc handle
+ * @desc: Tx Descriptor
+ * @ts: HAL Tx completion descriptor contents
+ *
+ * This function is used to send tx completion to packet capture
+ */
+void dp_send_completion_to_pkt_capture(struct dp_soc *soc,
+				       struct dp_tx_desc_s *desc,
+				       struct hal_tx_completion_status *ts)
+{
+	dp_wdi_event_handler(WDI_EVENT_PKT_CAPTURE_TX_DATA, soc,
+			     desc, ts->peer_id,
+			     WDI_NO_VAL, desc->pdev->pdev_id);
+}
+#endif
+
 /**
  * dp_tx_comp_process_desc() - Process tx descriptor and free associated nbuf
  * @soc: DP Soc handle
@@ -3838,6 +3857,9 @@ dp_tx_comp_process_desc(struct dp_soc *soc,
 		time_latency = (qdf_ktime_to_ms(qdf_ktime_real_get()) -
 				desc->timestamp);
 	}
+
+	dp_send_completion_to_pkt_capture(soc, desc, ts);
+
 	if (!(desc->msdu_ext_desc)) {
 		if (QDF_STATUS_SUCCESS ==
 		    dp_tx_add_to_comp_queue(soc, desc, ts, peer)) {

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

@@ -660,4 +660,16 @@ QDF_STATUS dp_peer_set_tx_capture_enabled(struct dp_pdev *pdev,
 }
 #endif
 
+#ifdef WLAN_FEATURE_PKT_CAPTURE_LITHIUM
+void dp_send_completion_to_pkt_capture(struct dp_soc *soc,
+				       struct dp_tx_desc_s *desc,
+				       struct hal_tx_completion_status *ts);
+#else
+static inline void
+dp_send_completion_to_pkt_capture(struct dp_soc *soc,
+				  struct dp_tx_desc_s *desc,
+				  struct hal_tx_completion_status *ts)
+{
+}
+#endif
 #endif