From 0366025b7f90c16b0cb13a26811c7c938dd1bf70 Mon Sep 17 00:00:00 2001 From: Vulupala Shashank Reddy Date: Wed, 18 Nov 2020 19:12:05 +0530 Subject: [PATCH] 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 --- dp/inc/cdp_txrx_stats_struct.h | 1 + dp/wifi3.0/dp_tx.c | 22 ++++++++++++++++++++++ dp/wifi3.0/dp_tx.h | 12 ++++++++++++ 3 files changed, 35 insertions(+) diff --git a/dp/inc/cdp_txrx_stats_struct.h b/dp/inc/cdp_txrx_stats_struct.h index ed1748997d..90e25ac28b 100644 --- a/dp/inc/cdp_txrx_stats_struct.h +++ b/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 }; diff --git a/dp/wifi3.0/dp_tx.c b/dp/wifi3.0/dp_tx.c index 920f143cff..df270c2ad7 100644 --- a/dp/wifi3.0/dp_tx.c +++ b/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)) { diff --git a/dp/wifi3.0/dp_tx.h b/dp/wifi3.0/dp_tx.h index 50660423ad..fdcdf68e08 100644 --- a/dp/wifi3.0/dp_tx.h +++ b/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