qcacmn: Fix dp/wifi3.0/monitor documentation

The kernel-doc script identified a large number of documentation
issues in dp/wifi3.0/monitor, so fix those issues. In addition,
there are a number of instances where public functions have their
implementation documented instead of having their interface
documented, so move that documentation.

Change-Id: I27e14544ef88193bbfe6ee409fe58c59d6b5bea2
CRs-Fixed: 3373167
This commit is contained in:
Jeff Johnson
2023-01-04 15:16:26 -08:00
committed by Madan Koyyalamudi
parent 73ff25850d
commit f2c2770849
19 changed files with 670 additions and 661 deletions

View File

@@ -63,10 +63,10 @@ dp_mon_populate_ppdu_info_1_0(struct hal_rx_ppdu_info *hal_ppdu_info,
ppdu->punc_bw = 0; ppdu->punc_bw = 0;
} }
/* /**
* is_ppdu_txrx_capture_enabled() - API to check both pktlog and debug_sniffer * is_ppdu_txrx_capture_enabled() - API to check both pktlog and debug_sniffer
* modes are enabled or not. * modes are enabled or not.
* @dp_pdev: dp pdev handle. * @pdev: dp pdev handle.
* *
* Return: bool * Return: bool
*/ */
@@ -534,7 +534,7 @@ budget_done:
/* MCL specific functions */ /* MCL specific functions */
#if defined(DP_CON_MON) #if defined(DP_CON_MON)
/* /**
* dp_mon_reap_timer_handler()- timer to reap monitor rings * dp_mon_reap_timer_handler()- timer to reap monitor rings
* reqd as we are not getting ppdu end interrupts * reqd as we are not getting ppdu end interrupts
* @arg: SoC Handle * @arg: SoC Handle
@@ -816,8 +816,8 @@ QDF_STATUS dp_mon_htt_srng_setup_1_0(struct dp_soc *soc,
/* MCL specific functions */ /* MCL specific functions */
#if defined(DP_CON_MON) #if defined(DP_CON_MON)
/* /**
* dp_service_mon_rings()- service monitor rings * dp_service_mon_rings() - service monitor rings
* @soc: soc dp handle * @soc: soc dp handle
* @quota: number of ring entry that can be serviced * @quota: number of ring entry that can be serviced
* *
@@ -841,8 +841,8 @@ void dp_service_mon_rings(struct dp_soc *soc, uint32_t quota)
} }
#endif #endif
/* /**
* dp_mon_peer_tx_init() Initialize receive TID state in monitor peer * dp_mon_peer_tx_init() - Initialize receive TID state in monitor peer
* @pdev: Datapath pdev * @pdev: Datapath pdev
* @peer: Datapath peer * @peer: Datapath peer
* *
@@ -857,8 +857,8 @@ dp_mon_peer_tx_init(struct dp_pdev *pdev, struct dp_peer *peer)
dp_peer_update_80211_hdr(peer->vdev, peer); dp_peer_update_80211_hdr(peer->vdev, peer);
} }
/* /**
* dp_mon_peer_tx_cleanup() Deinitialize receive TID state in monitor peer * dp_mon_peer_tx_cleanup() - Deinitialize receive TID state in monitor peer
* @vdev: Datapath vdev * @vdev: Datapath vdev
* @peer: Datapath peer * @peer: Datapath peer
* *
@@ -940,7 +940,7 @@ static void dp_ppdu_desc_notify_1_0(struct dp_pdev *pdev, qdf_nbuf_t nbuf)
ppdu_desc = (struct cdp_tx_completion_ppdu *)qdf_nbuf_data(nbuf); ppdu_desc = (struct cdp_tx_completion_ppdu *)qdf_nbuf_data(nbuf);
/** /*
* Deliver PPDU stats only for valid (acked) data * Deliver PPDU stats only for valid (acked) data
* frames if sniffer mode is not enabled. * frames if sniffer mode is not enabled.
* If sniffer mode is enabled, PPDU stats * If sniffer mode is enabled, PPDU stats
@@ -971,7 +971,7 @@ static void dp_ppdu_desc_notify_1_0(struct dp_pdev *pdev, qdf_nbuf_t nbuf)
#endif #endif
/** /**
* dp_ppdu_stats_feat_enable_check_1_0 - Check if feature(s) is enabled to * dp_ppdu_stats_feat_enable_check_1_0() - Check if feature(s) is enabled to
* consume ppdu stats from FW * consume ppdu stats from FW
* *
* @pdev: Datapath pdev handle * @pdev: Datapath pdev handle
@@ -990,12 +990,12 @@ static bool dp_ppdu_stats_feat_enable_check_1_0(struct dp_pdev *pdev)
} }
/** /**
* dp_mon_tx_stats_update_1_0 - Update Tx stats from HTT PPDU completion path * dp_mon_tx_stats_update_1_0() - Update Tx stats from HTT PPDU completion path
* *
* @monitor: Monitor peer * @mon_peer: Monitor peer
* @ppdu: Tx PPDU user completion info * @ppdu: Tx PPDU user completion info
*/ */
void static void
dp_mon_tx_stats_update_1_0(struct dp_mon_peer *mon_peer, dp_mon_tx_stats_update_1_0(struct dp_mon_peer *mon_peer,
struct cdp_tx_completion_ppdu_user *ppdu) struct cdp_tx_completion_ppdu_user *ppdu)
{ {
@@ -1005,7 +1005,7 @@ dp_mon_tx_stats_update_1_0(struct dp_mon_peer *mon_peer,
#ifndef QCA_SUPPORT_FULL_MON #ifndef QCA_SUPPORT_FULL_MON
/** /**
* dp_rx_mon_process () - Core brain processing for monitor mode * dp_rx_mon_process() - Core brain processing for monitor mode
* *
* This API processes monitor destination ring followed by monitor status ring * This API processes monitor destination ring followed by monitor status ring
* Called from bottom half (tasklet/NET_RX_SOFTIRQ) * Called from bottom half (tasklet/NET_RX_SOFTIRQ)
@@ -1015,7 +1015,7 @@ dp_mon_tx_stats_update_1_0(struct dp_mon_peer *mon_peer,
* @mac_id: mac_id on which interrupt is received * @mac_id: mac_id on which interrupt is received
* @quota: Number of status ring entry that can be serviced in one shot. * @quota: Number of status ring entry that can be serviced in one shot.
* *
* @Return: Number of reaped status ring entries * Return: Number of reaped status ring entries
*/ */
static inline uint32_t static inline uint32_t
dp_rx_mon_process(struct dp_soc *soc, struct dp_intr *int_ctx, dp_rx_mon_process(struct dp_soc *soc, struct dp_intr *int_ctx,

View File

@@ -1,6 +1,6 @@
/* /*
* Copyright (c) 2021, The Linux Foundation. All rights reserved. * Copyright (c) 2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
* *
* Permission to use, copy, modify, and/or distribute this software for any * Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above * purpose with or without fee is hereby granted, provided that the above
@@ -71,7 +71,7 @@ struct dp_mon_pdev_li {
/** /**
* dp_mon_get_context_size_li() - get LI specific size for mon pdev/soc * dp_mon_get_context_size_li() - get LI specific size for mon pdev/soc
* @arch_ops: arch ops pointer * @context_type: context type for which the size is needed
* *
* Return: size in bytes for the context_type * Return: size in bytes for the context_type
*/ */

View File

@@ -1,6 +1,6 @@
/* /*
* Copyright (c) 2021, The Linux Foundation. All rights reserved. * Copyright (c) 2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
* *
* Permission to use, copy, modify, and/or distribute this software for any * Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above * purpose with or without fee is hereby granted, provided that the above
@@ -157,10 +157,6 @@ void dp_mon_filter_setup_enhanced_stats_1_0(struct dp_pdev *pdev)
mon_pdev->filter[mode][srng_type] = filter; mon_pdev->filter[mode][srng_type] = filter;
} }
/**
* dp_mon_filter_reset_enhanced_stats() - Reset the enhanced stats filter
* @pdev: DP pdev handle
*/
void dp_mon_filter_reset_enhanced_stats_1_0(struct dp_pdev *pdev) void dp_mon_filter_reset_enhanced_stats_1_0(struct dp_pdev *pdev)
{ {
struct dp_mon_filter filter = {0}; struct dp_mon_filter filter = {0};
@@ -180,11 +176,6 @@ void dp_mon_filter_reset_enhanced_stats_1_0(struct dp_pdev *pdev)
#endif /* QCA_ENHANCED_STATS_SUPPORT */ #endif /* QCA_ENHANCED_STATS_SUPPORT */
#ifdef QCA_UNDECODED_METADATA_SUPPORT #ifdef QCA_UNDECODED_METADATA_SUPPORT
/**
* mon_filter_setup_undecoded_metadata_capture() - Setup undecoded frame
* capture phyrx aborted frame filter setup
* @pdev: DP pdev handle
*/
void dp_mon_filter_setup_undecoded_metadata_capture_1_0(struct dp_pdev *pdev) void dp_mon_filter_setup_undecoded_metadata_capture_1_0(struct dp_pdev *pdev)
{ {
struct dp_mon_filter filter = {0}; struct dp_mon_filter filter = {0};
@@ -224,11 +215,6 @@ void dp_mon_filter_setup_undecoded_metadata_capture_1_0(struct dp_pdev *pdev)
mon_pdev->filter[mode][srng_type] = filter; mon_pdev->filter[mode][srng_type] = filter;
} }
/**
* mon_filter_reset_undecoded_metadata_capture() - Reset undecoded frame
* capture phyrx aborted frame filter
* @pdev: DP pdev handle
*/
void dp_mon_filter_reset_undecoded_metadata_capture_1_0(struct dp_pdev *pdev) void dp_mon_filter_reset_undecoded_metadata_capture_1_0(struct dp_pdev *pdev)
{ {
struct dp_mon_filter filter = {0}; struct dp_mon_filter filter = {0};
@@ -373,10 +359,6 @@ void dp_mon_filter_reset_mcopy_mode_1_0(struct dp_pdev *pdev)
#endif #endif
#if defined(ATH_SUPPORT_NAC_RSSI) || defined(ATH_SUPPORT_NAC) #if defined(ATH_SUPPORT_NAC_RSSI) || defined(ATH_SUPPORT_NAC)
/**
* dp_mon_filter_setup_smart_monitor() - Setup the smart monitor mode filter
* @pdev: DP pdev handle
*/
void dp_mon_filter_setup_smart_monitor_1_0(struct dp_pdev *pdev) void dp_mon_filter_setup_smart_monitor_1_0(struct dp_pdev *pdev)
{ {
struct dp_mon_filter filter = {0}; struct dp_mon_filter filter = {0};
@@ -680,14 +662,6 @@ static void dp_mon_set_reset_mon_filter(struct dp_mon_filter *filter, bool val)
} }
} }
/**
* dp_mon_set_reset_mon_mac_filter_1_0() - Set/Reset monitor buffer and status
* filter
* @pdev: DP pdev handle
* @val: Set or reset the filter
*
* Return: void
*/
void dp_mon_set_reset_mon_mac_filter_1_0(struct dp_pdev *pdev, bool val) void dp_mon_set_reset_mon_mac_filter_1_0(struct dp_pdev *pdev, bool val)
{ {
struct dp_mon_filter filter = {0}; struct dp_mon_filter filter = {0};
@@ -919,7 +893,7 @@ void dp_mon_filter_reset_rx_pktlog_cbf_1_0(struct dp_pdev *pdev)
* This function is used as WAR till WIN cleans up the monitor mode * This function is used as WAR till WIN cleans up the monitor mode
* function for targets where monitor mode is not enabled. * function for targets where monitor mode is not enabled.
* *
* Returns: true * Return: true
*/ */
static inline bool dp_mon_should_reset_buf_ring_filter(struct dp_pdev *pdev) static inline bool dp_mon_should_reset_buf_ring_filter(struct dp_pdev *pdev)
{ {

View File

@@ -1,6 +1,6 @@
/* /*
* Copyright (c) 2021, The Linux Foundation. All rights reserved. * Copyright (c) 2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
* *
* Permission to use, copy, modify, and/or distribute this software for any * Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above * purpose with or without fee is hereby granted, provided that the above
@@ -19,13 +19,13 @@
#ifdef QCA_ENHANCED_STATS_SUPPORT #ifdef QCA_ENHANCED_STATS_SUPPORT
/** /**
* dp_mon_filter_setup_enhanced_stats() - Setup the enhanced stats filter * dp_mon_filter_setup_enhanced_stats_1_0() - Setup the enhanced stats filter
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_setup_enhanced_stats_1_0(struct dp_pdev *pdev); void dp_mon_filter_setup_enhanced_stats_1_0(struct dp_pdev *pdev);
/*** /**
* dp_mon_filter_reset_enhanced_stats() - Reset the enhanced stats filter * dp_mon_filter_reset_enhanced_stats_1_0() - Reset the enhanced stats filter
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_reset_enhanced_stats_1_0(struct dp_pdev *pdev); void dp_mon_filter_reset_enhanced_stats_1_0(struct dp_pdev *pdev);
@@ -40,15 +40,15 @@ static inline void dp_mon_filter_reset_enhanced_stats_1_0(struct dp_pdev *pdev)
#endif #endif
#ifdef QCA_UNDECODED_METADATA_SUPPORT #ifdef QCA_UNDECODED_METADATA_SUPPORT
/* /**
* dp_mon_filter_setup_undecoded_metadata_capture() - Setup the filter * dp_mon_filter_setup_undecoded_metadata_capture_1_0() - Setup the filter
* for undecoded metadata capture * for undecoded metadata capture
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_setup_undecoded_metadata_capture_1_0(struct dp_pdev *pdev); void dp_mon_filter_setup_undecoded_metadata_capture_1_0(struct dp_pdev *pdev);
/* /**
* dp_mon_filter_reset_undecoded_metadata_capture() - Reset the filter * dp_mon_filter_reset_undecoded_metadata_capture_1_0() - Reset the filter
* for undecoded metadata capture * for undecoded metadata capture
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
@@ -67,13 +67,13 @@ dp_mon_filter_reset_undecoded_metadata_capture_1_0(struct dp_pdev *pdev)
#ifdef QCA_MCOPY_SUPPORT #ifdef QCA_MCOPY_SUPPORT
/** /**
* dp_mon_filter_setup_mcopy_mode() - Setup the m_copy mode filter * dp_mon_filter_setup_mcopy_mode_1_0() - Setup the m_copy mode filter
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_setup_mcopy_mode_1_0(struct dp_pdev *pdev); void dp_mon_filter_setup_mcopy_mode_1_0(struct dp_pdev *pdev);
/** /**
* dp_mon_filter_reset_mcopy_mode() - Reset the m_copy mode filter * dp_mon_filter_reset_mcopy_mode_1_0() - Reset the m_copy mode filter
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_reset_mcopy_mode_1_0(struct dp_pdev *pdev); void dp_mon_filter_reset_mcopy_mode_1_0(struct dp_pdev *pdev);
@@ -89,13 +89,13 @@ static inline void dp_mon_filter_reset_mcopy_mode_1_0(struct dp_pdev *pdev)
#if defined(ATH_SUPPORT_NAC_RSSI) || defined(ATH_SUPPORT_NAC) #if defined(ATH_SUPPORT_NAC_RSSI) || defined(ATH_SUPPORT_NAC)
/** /**
* dp_mon_filter_setup_smart_monitor() - Setup the smart monitor mode filter * dp_mon_filter_setup_smart_monitor_1_0() - Setup the smart monitor mode filter
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_setup_smart_monitor_1_0(struct dp_pdev *pdev); void dp_mon_filter_setup_smart_monitor_1_0(struct dp_pdev *pdev);
/** /**
* dp_mon_filter_reset_smart_monitor() - Reset the smart monitor mode filter * dp_mon_filter_reset_smart_monitor_1_0() - Reset the smart monitor mode filter
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_reset_smart_monitor_1_0(struct dp_pdev *pdev); void dp_mon_filter_reset_smart_monitor_1_0(struct dp_pdev *pdev);
@@ -118,13 +118,13 @@ void dp_mon_set_reset_mon_mac_filter_1_0(struct dp_pdev *pdev, bool val);
#ifdef WLAN_RX_PKT_CAPTURE_ENH #ifdef WLAN_RX_PKT_CAPTURE_ENH
/** /**
* dp_mon_filter_setup_rx_enh_capture() - Setup the Rx capture mode filters * dp_mon_filter_setup_rx_enh_capture_1_0() - Setup the Rx capture mode filters
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_setup_rx_enh_capture_1_0(struct dp_pdev *pdev); void dp_mon_filter_setup_rx_enh_capture_1_0(struct dp_pdev *pdev);
/** /**
* dp_mon_filter_reset_rx_enh_capture() - Reset the Rx capture mode filters * dp_mon_filter_reset_rx_enh_capture_1_0() - Reset the Rx capture mode filters
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_reset_rx_enh_capture_1_0(struct dp_pdev *pdev); void dp_mon_filter_reset_rx_enh_capture_1_0(struct dp_pdev *pdev);
@@ -139,52 +139,55 @@ static inline void dp_mon_filter_reset_rx_enh_capture_1_0(struct dp_pdev *pdev)
#endif #endif
/** /**
* dp_mon_filter_setup_mon_mode() - Setup the Rx monitor mode filter * dp_mon_filter_setup_mon_mode_1_0() - Setup the Rx monitor mode filter
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_setup_mon_mode_1_0(struct dp_pdev *pdev); void dp_mon_filter_setup_mon_mode_1_0(struct dp_pdev *pdev);
/** /**
* dp_mon_filter_reset_mon_mode() - Reset the Rx monitor mode filter * dp_mon_filter_reset_mon_mode_1_0() - Reset the Rx monitor mode filter
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_reset_mon_mode_1_0(struct dp_pdev *pdev); void dp_mon_filter_reset_mon_mode_1_0(struct dp_pdev *pdev);
#ifdef WDI_EVENT_ENABLE #ifdef WDI_EVENT_ENABLE
/** /**
* dp_mon_filter_setup_rx_pkt_log_full() - Setup the Rx pktlog full mode filter * dp_mon_filter_setup_rx_pkt_log_full_1_0() - Setup the Rx pktlog full mode
* filter in the radio object.
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_setup_rx_pkt_log_full_1_0(struct dp_pdev *pdev); void dp_mon_filter_setup_rx_pkt_log_full_1_0(struct dp_pdev *pdev);
/** /**
* dp_mon_filter_reset_rx_pkt_log_full_1_0() - Reset the Rx pktlog full mode filter * dp_mon_filter_reset_rx_pkt_log_full_1_0() - Reset the Rx pktlog full mode
* filter in the radio object.
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_reset_rx_pkt_log_full_1_0(struct dp_pdev *pdev); void dp_mon_filter_reset_rx_pkt_log_full_1_0(struct dp_pdev *pdev);
/** /**
* dp_mon_filter_setup_rx_pkt_log_lite() - Setup the Rx pktlog lite mode filter * dp_mon_filter_setup_rx_pkt_log_lite_1_0() - Setup the Rx pktlog lite mode
* in the radio object. * filter in the radio object.
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_setup_rx_pkt_log_lite_1_0(struct dp_pdev *pdev); void dp_mon_filter_setup_rx_pkt_log_lite_1_0(struct dp_pdev *pdev);
/** /**
* dp_mon_filter_reset_rx_pkt_log_lite() - Reset the Rx pktlog lite mode filter * dp_mon_filter_reset_rx_pkt_log_lite_1_0() - Reset the Rx pktlog lite mode
* filter in the radio object.
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_reset_rx_pkt_log_lite_1_0(struct dp_pdev *pdev); void dp_mon_filter_reset_rx_pkt_log_lite_1_0(struct dp_pdev *pdev);
/** /**
* dp_mon_filter_setup_rx_pkt_log_cbf() - Setup the Rx pktlog cbf mode filter * dp_mon_filter_setup_rx_pkt_log_cbf_1_0() - Setup the Rx pktlog cbf mode
* in the radio object. * filter in the radio object.
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_setup_rx_pkt_log_cbf_1_0(struct dp_pdev *pdev); void dp_mon_filter_setup_rx_pkt_log_cbf_1_0(struct dp_pdev *pdev);
/** /**
* dp_mon_filter_reset_rx_pktlog_cbf() - Reset the Rx pktlog cbf mode filter * dp_mon_filter_reset_rx_pktlog_cbf_1_0() - Reset the Rx pktlog cbf mode filter
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_reset_rx_pktlog_cbf_1_0(struct dp_pdev *pdev); void dp_mon_filter_reset_rx_pktlog_cbf_1_0(struct dp_pdev *pdev);
@@ -220,7 +223,7 @@ QDF_STATUS dp_mon_filter_update_1_0(struct dp_pdev *pdev);
/** /**
* dp_mon_mac_filter_set() - Setup rx monitor mac filter feature * dp_mon_mac_filter_set() - Setup rx monitor mac filter feature
* @msg_word: msg word * @msg_word: msg word
* @htt_tlv_filter: rx ring filter configuration * @tlv_filter: rx ring filter configuration
*/ */
void dp_mon_mac_filter_set(uint32_t *msg_word, void dp_mon_mac_filter_set(uint32_t *msg_word,
struct htt_rx_ring_tlv_filter *tlv_filter); struct htt_rx_ring_tlv_filter *tlv_filter);

View File

@@ -56,7 +56,7 @@ void dp_rx_pdev_mon_desc_pool_free(struct dp_pdev *pdev);
* Called from the bottom half (tasklet/NET_RX_SOFTIRQ) * Called from the bottom half (tasklet/NET_RX_SOFTIRQ)
* @soc: core txrx main context * @soc: core txrx main context
* @int_ctx: interrupt context * @int_ctx: interrupt context
* @hal_ring: opaque pointer to the HAL Rx Ring, which will be serviced * @mac_id: mac id
* @quota: No. of units (packets) that can be serviced in one shot. * @quota: No. of units (packets) that can be serviced in one shot.
* *
* This function implements the core of Rx functionality. This is * This function implements the core of Rx functionality. This is
@@ -122,9 +122,9 @@ dp_mon_dest_srng_drop_for_mac(struct dp_pdev *pdev, uint32_t mac_id);
/** /**
* dp_rxdma_err_process() - RxDMA error processing functionality * dp_rxdma_err_process() - RxDMA error processing functionality
* @int_ctx: interrupt context
* @soc: core txrx main context * @soc: core txrx main context
* @mac_id: mac id which is one of 3 mac_ids * @mac_id: mac id
* @hal_ring: opaque pointer to the HAL Rx Ring, which will be serviced
* @quota: No. of units (packets) that can be serviced in one shot. * @quota: No. of units (packets) that can be serviced in one shot.
* *
* Return: num of buffers processed * Return: num of buffers processed
@@ -147,6 +147,8 @@ void dp_mon_buf_delayed_replenish(struct dp_pdev *pdev);
* *
* @dp_pdev: core txrx pdev context * @dp_pdev: core txrx pdev context
* @buf_addr_info: void pointer to monitor link descriptor buf addr info * @buf_addr_info: void pointer to monitor link descriptor buf addr info
* @mac_id: mac id which is one of 3 mac_ids
*
* Return: QDF_STATUS * Return: QDF_STATUS
*/ */
QDF_STATUS QDF_STATUS
@@ -249,6 +251,9 @@ void dp_rx_mon_frag_adjust_frag_len(uint32_t *total_len, uint32_t *frag_len,
/** /**
* DP_RX_MON_GET_NBUF_FROM_DESC() - Get nbuf from desc * DP_RX_MON_GET_NBUF_FROM_DESC() - Get nbuf from desc
* @rx_desc: RX descriptor
*
* Return: nbuf address
*/ */
#define DP_RX_MON_GET_NBUF_FROM_DESC(rx_desc) \ #define DP_RX_MON_GET_NBUF_FROM_DESC(rx_desc) \
NULL NULL
@@ -290,6 +295,9 @@ dp_rx_mon_add_msdu_to_list_failure_handler(void *rx_tlv_hdr,
/** /**
* dp_rx_mon_get_paddr_from_desc() - Get paddr from desc * dp_rx_mon_get_paddr_from_desc() - Get paddr from desc
* @rx_desc: RX descriptor
*
* Return: Physical address of the buffer
*/ */
static inline static inline
qdf_dma_addr_t dp_rx_mon_get_paddr_from_desc(struct dp_rx_desc *rx_desc) qdf_dma_addr_t dp_rx_mon_get_paddr_from_desc(struct dp_rx_desc *rx_desc)
@@ -299,6 +307,9 @@ qdf_dma_addr_t dp_rx_mon_get_paddr_from_desc(struct dp_rx_desc *rx_desc)
/** /**
* DP_RX_MON_IS_BUFFER_ADDR_NULL() - Is Buffer received from hw is NULL * DP_RX_MON_IS_BUFFER_ADDR_NULL() - Is Buffer received from hw is NULL
* @rx_desc: RX descriptor
*
* Return: true if the buffer is NULL, otherwise false
*/ */
#define DP_RX_MON_IS_BUFFER_ADDR_NULL(rx_desc) \ #define DP_RX_MON_IS_BUFFER_ADDR_NULL(rx_desc) \
(!(rx_desc->rx_buf_start)) (!(rx_desc->rx_buf_start))
@@ -377,19 +388,20 @@ QDF_STATUS dp_rx_mon_alloc_parent_buffer(qdf_nbuf_t *head_msdu)
/** /**
* dp_rx_mon_parse_desc_buffer() - Parse desc buffer based. * dp_rx_mon_parse_desc_buffer() - Parse desc buffer based.
* @dp_soc: struct dp_soc*
* @msdu_info: struct hal_rx_msdu_desc_info*
* @is_frag_p: is_frag *
* @total_frag_len_p: Remaining frag len to be updated
* @frag_len_p: frag len
* @l2_hdr_offset_p: l2 hdr offset
* @rx_desc_tlv: rx_desc_tlv
* @first_rx_desc_tlv:
* @is_frag_non_raw_p: Non raw frag
* @data: NBUF Data
* *
* Below code will parse desc buffer, handle continuation frame, * Below code will parse desc buffer, handle continuation frame,
* adjust frag length and update l2_hdr_padding * adjust frag length and update l2_hdr_padding
* *
* @soc : struct dp_soc*
* @msdu_info : struct hal_rx_msdu_desc_info*
* @is_frag_p : is_frag *
* @total_frag_len_p : Remaining frag len to be updated
* @frag_len_p : frag len
* @l2_hdr_offset_p : l2 hdr offset
* @rx_desc_tlv : rx_desc_tlv
* @is_frag_non_raw_p : Non raw frag
* @data : NBUF Data
*/ */
static inline void static inline void
dp_rx_mon_parse_desc_buffer(struct dp_soc *dp_soc, dp_rx_mon_parse_desc_buffer(struct dp_soc *dp_soc,
@@ -511,6 +523,8 @@ dp_rx_mon_parse_desc_buffer(struct dp_soc *dp_soc,
/** /**
* dp_rx_mon_buffer_set_pktlen() - set pktlen for buffer * dp_rx_mon_buffer_set_pktlen() - set pktlen for buffer
* @msdu: MSDU
* @size: MSDU size
*/ */
static inline void dp_rx_mon_buffer_set_pktlen(qdf_nbuf_t msdu, uint32_t size) static inline void dp_rx_mon_buffer_set_pktlen(qdf_nbuf_t msdu, uint32_t size)
{ {
@@ -878,8 +892,8 @@ uint8_t *dp_rx_mon_get_buffer_data(struct dp_rx_desc *rx_desc)
/** /**
* dp_rx_cookie_2_mon_link_desc() - Retrieve Link descriptor based on target * dp_rx_cookie_2_mon_link_desc() - Retrieve Link descriptor based on target
* @pdev: core physical device context * @pdev: core physical device context
* @hal_buf_info: structure holding the buffer info * @buf_info: structure holding the buffer info
* mac_id: mac number * @mac_id: mac number
* *
* Return: link descriptor address * Return: link descriptor address
*/ */
@@ -899,7 +913,8 @@ void *dp_rx_cookie_2_mon_link_desc(struct dp_pdev *pdev,
* dp_rx_monitor_link_desc_return() - Return Link descriptor based on target * dp_rx_monitor_link_desc_return() - Return Link descriptor based on target
* @pdev: core physical device context * @pdev: core physical device context
* @p_last_buf_addr_info: MPDU Link descriptor * @p_last_buf_addr_info: MPDU Link descriptor
* mac_id: mac number * @mac_id: mac number
* @bm_action:
* *
* Return: QDF_STATUS * Return: QDF_STATUS
*/ */

View File

@@ -1,6 +1,6 @@
/* /*
* Copyright (c) 2017-2021, The Linux Foundation. All rights reserved. * Copyright (c) 2017-2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
* *
* Permission to use, copy, modify, and/or distribute this software for any * Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above * purpose with or without fee is hereby granted, provided that the above
@@ -47,7 +47,7 @@ QDF_STATUS dp_rx_mon_status_buffers_replenish(struct dp_soc *dp_soc,
uint8_t owner); uint8_t owner);
/** /**
* dp_rx_mon_handle_status_buf_done () - Handle status buf DMA not done * dp_rx_mon_handle_status_buf_done() - Handle status buf DMA not done
* *
* @pdev: DP pdev handle * @pdev: DP pdev handle
* @mon_status_srng: Monitor status SRNG * @mon_status_srng: Monitor status SRNG

View File

@@ -1,6 +1,6 @@
/* /*
* Copyright (c) 2021 The Linux Foundation. All rights reserved. * Copyright (c) 2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
* *
* Permission to use, copy, modify, and/or distribute this software for any * Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above * purpose with or without fee is hereby granted, provided that the above
@@ -130,7 +130,9 @@ struct dp_mon_desc_pool {
qdf_frag_cache_t pf_cache; qdf_frag_cache_t pf_cache;
}; };
/** /*
* NB: intentionally not using kernel-doc comment because the kernel-doc
* script does not handle the TAILQ_HEAD macro
* struct dp_mon_pdev_be - BE specific monitor pdev object * struct dp_mon_pdev_be - BE specific monitor pdev object
* @mon_pdev: monitor pdev structure * @mon_pdev: monitor pdev structure
* @filter_be: filters sent to fw * @filter_be: filters sent to fw
@@ -217,7 +219,7 @@ struct dp_mon_soc_be {
/** /**
* dp_mon_desc_pool_init() - Monitor descriptor pool init * dp_mon_desc_pool_init() - Monitor descriptor pool init
* @mon_desc_pool: mon desc pool * @mon_desc_pool: mon desc pool
* @pool_size * @pool_size: Pool size
* *
* Return: non-zero for failure, zero for success * Return: non-zero for failure, zero for success
*/ */
@@ -225,7 +227,7 @@ QDF_STATUS
dp_mon_desc_pool_init(struct dp_mon_desc_pool *mon_desc_pool, dp_mon_desc_pool_init(struct dp_mon_desc_pool *mon_desc_pool,
uint32_t pool_size); uint32_t pool_size);
/* /**
* dp_mon_desc_pool_deinit()- monitor descriptor pool deinit * dp_mon_desc_pool_deinit()- monitor descriptor pool deinit
* @mon_desc_pool: mon desc pool * @mon_desc_pool: mon desc pool
* *
@@ -234,7 +236,7 @@ dp_mon_desc_pool_init(struct dp_mon_desc_pool *mon_desc_pool,
*/ */
void dp_mon_desc_pool_deinit(struct dp_mon_desc_pool *mon_desc_pool); void dp_mon_desc_pool_deinit(struct dp_mon_desc_pool *mon_desc_pool);
/* /**
* dp_mon_desc_pool_free()- monitor descriptor pool free * dp_mon_desc_pool_free()- monitor descriptor pool free
* @mon_desc_pool: mon desc pool * @mon_desc_pool: mon desc pool
* *
@@ -245,19 +247,19 @@ void dp_mon_desc_pool_free(struct dp_mon_desc_pool *mon_desc_pool);
/** /**
* dp_mon_desc_pool_alloc() - Monitor descriptor pool alloc * dp_mon_desc_pool_alloc() - Monitor descriptor pool alloc
* @mon_desc_pool: mon desc pool
* @pool_size: Pool size * @pool_size: Pool size
* @mon_desc_pool: mon desc pool
* *
* Return: non-zero for failure, zero for success * Return: non-zero for failure, zero for success
*/ */
QDF_STATUS dp_mon_desc_pool_alloc(uint32_t pool_size, QDF_STATUS dp_mon_desc_pool_alloc(uint32_t pool_size,
struct dp_mon_desc_pool *mon_desc_pool); struct dp_mon_desc_pool *mon_desc_pool);
/* /**
* dp_mon_pool_frag_unmap_and_free() - free the mon desc frag called during * dp_mon_pool_frag_unmap_and_free() - free the mon desc frag called during
* de-initialization of wifi module. * de-initialization of wifi module.
* *
* @soc: DP soc handle * @dp_soc: DP soc handle
* @mon_desc_pool: monitor descriptor pool pointer * @mon_desc_pool: monitor descriptor pool pointer
* *
* Return: None * Return: None
@@ -265,10 +267,10 @@ QDF_STATUS dp_mon_desc_pool_alloc(uint32_t pool_size,
void dp_mon_pool_frag_unmap_and_free(struct dp_soc *dp_soc, void dp_mon_pool_frag_unmap_and_free(struct dp_soc *dp_soc,
struct dp_mon_desc_pool *mon_desc_pool); struct dp_mon_desc_pool *mon_desc_pool);
/* /**
* dp_mon_buffers_replenish() - replenish monitor ring with nbufs * dp_mon_buffers_replenish() - replenish monitor ring with nbufs
* *
* @soc: core txrx main context * @dp_soc: core txrx main context
* @dp_mon_srng: dp monitor circular ring * @dp_mon_srng: dp monitor circular ring
* @mon_desc_pool: Pointer to free mon descriptor pool * @mon_desc_pool: Pointer to free mon descriptor pool
* @num_req_buffers: number of buffer to be replenished * @num_req_buffers: number of buffer to be replenished
@@ -276,7 +278,7 @@ void dp_mon_pool_frag_unmap_and_free(struct dp_soc *dp_soc,
* or NULL during dp rx initialization or out of buffer * or NULL during dp rx initialization or out of buffer
* interrupt. * interrupt.
* @tail: tail of descs list * @tail: tail of descs list
* @relenish_cnt_ref: pointer to update replenish_cnt * @replenish_cnt_ref: pointer to update replenish_cnt
* *
* Return: return success or failure * Return: return success or failure
*/ */
@@ -291,7 +293,7 @@ QDF_STATUS dp_mon_buffers_replenish(struct dp_soc *dp_soc,
/** /**
* dp_mon_filter_show_tx_filter_be() - Show the set filters * dp_mon_filter_show_tx_filter_be() - Show the set filters
* @mode: The filter modes * @mode: The filter modes
* @tlv_filter: tlv filter * @filter: tlv filter
*/ */
void dp_mon_filter_show_tx_filter_be(enum dp_mon_filter_mode mode, void dp_mon_filter_show_tx_filter_be(enum dp_mon_filter_mode mode,
struct dp_mon_filter_be *filter); struct dp_mon_filter_be *filter);
@@ -299,7 +301,7 @@ void dp_mon_filter_show_tx_filter_be(enum dp_mon_filter_mode mode,
/** /**
* dp_mon_filter_show_rx_filter_be() - Show the set filters * dp_mon_filter_show_rx_filter_be() - Show the set filters
* @mode: The filter modes * @mode: The filter modes
* @tlv_filter: tlv filter * @filter: tlv filter
*/ */
void dp_mon_filter_show_rx_filter_be(enum dp_mon_filter_mode mode, void dp_mon_filter_show_rx_filter_be(enum dp_mon_filter_mode mode,
struct dp_mon_filter_be *filter); struct dp_mon_filter_be *filter);
@@ -332,7 +334,7 @@ enum cdp_punctured_modes
dp_mon_get_puncture_type(uint16_t puncture_pattern, uint8_t bw); dp_mon_get_puncture_type(uint16_t puncture_pattern, uint8_t bw);
#endif #endif
/* /**
* dp_mon_desc_get() - get monitor sw descriptor * dp_mon_desc_get() - get monitor sw descriptor
* *
* @cookie: cookie * @cookie: cookie
@@ -346,7 +348,7 @@ struct dp_mon_desc *dp_mon_desc_get(uint64_t *cookie)
} }
/** /**
* dp_rx_add_to_free_desc_list() - Adds to a local free descriptor list * __dp_mon_add_to_free_desc_list() - Adds to a local free descriptor list
* *
* @head: pointer to the head of local free list * @head: pointer to the head of local free list
* @tail: pointer to the tail of local free list * @tail: pointer to the tail of local free list
@@ -376,7 +378,7 @@ void __dp_mon_add_to_free_desc_list(union dp_mon_desc_list_elem_t **head,
#define dp_mon_add_to_free_desc_list(head, tail, new) \ #define dp_mon_add_to_free_desc_list(head, tail, new) \
__dp_mon_add_to_free_desc_list(head, tail, new, __func__) __dp_mon_add_to_free_desc_list(head, tail, new, __func__)
/* /**
* dp_mon_add_desc_list_to_free_list() - append unused desc_list back to * dp_mon_add_desc_list_to_free_list() - append unused desc_list back to
* freelist. * freelist.
* *
@@ -393,7 +395,7 @@ dp_mon_add_desc_list_to_free_list(struct dp_soc *soc,
struct dp_mon_desc_pool *mon_desc_pool); struct dp_mon_desc_pool *mon_desc_pool);
/** /**
* dp_rx_mon_add_frag_to_skb () - Add page frag to skb * dp_rx_mon_add_frag_to_skb() - Add page frag to skb
* *
* @ppdu_info: PPDU status info * @ppdu_info: PPDU status info
* @nbuf: SKB to which frag need to be added * @nbuf: SKB to which frag need to be added
@@ -423,7 +425,8 @@ dp_rx_mon_add_frag_to_skb(struct hal_rx_ppdu_info *ppdu_info,
#if defined(WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG) ||\ #if defined(WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG) ||\
defined(WLAN_SUPPORT_RX_FLOW_TAG) defined(WLAN_SUPPORT_RX_FLOW_TAG)
/** dp_mon_rx_update_rx_err_protocol_tag_stats() - Update mon protocols's /**
* dp_mon_rx_update_rx_protocol_tag_stats() - Update mon protocols's
* statistics from given protocol * statistics from given protocol
* type * type
* @pdev: pdev handle * @pdev: pdev handle
@@ -438,7 +441,7 @@ void dp_mon_rx_update_rx_protocol_tag_stats(struct dp_pdev *pdev,
#if !defined(DISABLE_MON_CONFIG) && defined(QCA_MONITOR_2_0_SUPPORT) #if !defined(DISABLE_MON_CONFIG) && defined(QCA_MONITOR_2_0_SUPPORT)
/** /**
* dp_mon_get_context_size_be() - get BE specific size for mon pdev/soc * dp_mon_get_context_size_be() - get BE specific size for mon pdev/soc
* @arch_ops: arch ops pointer * @context_type: context type for which the size is needed
* *
* Return: size in bytes for the context_type * Return: size in bytes for the context_type
*/ */
@@ -471,7 +474,7 @@ struct dp_mon_soc_be *dp_get_be_mon_soc_from_dp_mon_soc(struct dp_mon_soc *soc)
/** /**
* dp_get_be_mon_pdev_from_dp_mon_pdev() - get dp_mon_pdev_be from dp_mon_pdev * dp_get_be_mon_pdev_from_dp_mon_pdev() - get dp_mon_pdev_be from dp_mon_pdev
* @pdev: dp_mon_pdev pointer * @mon_pdev: dp_mon_pdev pointer
* *
* Return: dp_mon_pdev_be pointer * Return: dp_mon_pdev_be pointer
*/ */

View File

@@ -1,6 +1,6 @@
/* /*
* Copyright (c) 2021, The Linux Foundation. All rights reserved. * Copyright (c) 2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
* *
* Permission to use, copy, modify, and/or distribute this software for any * Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above * purpose with or without fee is hereby granted, provided that the above
@@ -43,7 +43,7 @@ struct dp_mon_pdev_be;
/** /**
* dp_rx_mon_enable_set() - Setup rx monitor feature * dp_rx_mon_enable_set() - Setup rx monitor feature
* @msg_word: msg word * @msg_word: msg word
* @htt_tlv_filter: rx ring filter configuration * @tlv_filter: rx ring filter configuration
*/ */
void void
dp_rx_mon_enable_set(uint32_t *msg_word, dp_rx_mon_enable_set(uint32_t *msg_word,
@@ -52,7 +52,7 @@ dp_rx_mon_enable_set(uint32_t *msg_word,
/** /**
* dp_rx_mon_hdr_length_set() - Setup rx monitor hdr tlv length * dp_rx_mon_hdr_length_set() - Setup rx monitor hdr tlv length
* @msg_word: msg word * @msg_word: msg word
* @htt_tlv_filter: rx ring filter configuration * @tlv_filter: rx ring filter configuration
*/ */
void void
dp_rx_mon_hdr_length_set(uint32_t *msg_word, dp_rx_mon_hdr_length_set(uint32_t *msg_word,
@@ -61,7 +61,7 @@ dp_rx_mon_hdr_length_set(uint32_t *msg_word,
/** /**
* dp_rx_mon_packet_length_set() - Setup rx monitor per packet type length * dp_rx_mon_packet_length_set() - Setup rx monitor per packet type length
* @msg_word: msg word * @msg_word: msg word
* @htt_tlv_filter: rx ring filter configuration * @tlv_filter: rx ring filter configuration
*/ */
void void
dp_rx_mon_packet_length_set(uint32_t *msg_word, dp_rx_mon_packet_length_set(uint32_t *msg_word,
@@ -70,7 +70,7 @@ dp_rx_mon_packet_length_set(uint32_t *msg_word,
/** /**
* dp_rx_mon_word_mask_subscribe() - Setup rx monitor word mask subscription * dp_rx_mon_word_mask_subscribe() - Setup rx monitor word mask subscription
* @msg_word: msg word * @msg_word: msg word
* @htt_tlv_filter: rx ring filter configuration * @tlv_filter: rx ring filter configuration
*/ */
void void
dp_rx_mon_word_mask_subscribe(uint32_t *msg_word, dp_rx_mon_word_mask_subscribe(uint32_t *msg_word,
@@ -79,7 +79,7 @@ dp_rx_mon_word_mask_subscribe(uint32_t *msg_word,
/** /**
* dp_rx_mon_enable_mpdu_logging() - Setup rx monitor per packet mpdu logging * dp_rx_mon_enable_mpdu_logging() - Setup rx monitor per packet mpdu logging
* @msg_word: msg word * @msg_word: msg word
* @htt_tlv_filter: rx ring filter configuration * @tlv_filter: rx ring filter configuration
*/ */
void void
dp_rx_mon_enable_mpdu_logging(uint32_t *msg_word, dp_rx_mon_enable_mpdu_logging(uint32_t *msg_word,
@@ -88,7 +88,7 @@ dp_rx_mon_enable_mpdu_logging(uint32_t *msg_word,
/** /**
* dp_rx_mon_enable_fpmo() - Setup rx monitor fpmo mode type/subtype filters * dp_rx_mon_enable_fpmo() - Setup rx monitor fpmo mode type/subtype filters
* @msg_word: msg word * @msg_word: msg word
* @htt_tlv_filter: rx ring filter configuration * @tlv_filter: rx ring filter configuration
*/ */
void void
dp_rx_mon_enable_fpmo(uint32_t *msg_word, dp_rx_mon_enable_fpmo(uint32_t *msg_word,
@@ -96,13 +96,13 @@ dp_rx_mon_enable_fpmo(uint32_t *msg_word,
#ifdef QCA_ENHANCED_STATS_SUPPORT #ifdef QCA_ENHANCED_STATS_SUPPORT
/** /**
* dp_mon_filter_setup_enhanced_stats() - Setup the enhanced stats filter * dp_mon_filter_setup_enhanced_stats_2_0() - Setup the enhanced stats filter
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_setup_enhanced_stats_2_0(struct dp_pdev *pdev); void dp_mon_filter_setup_enhanced_stats_2_0(struct dp_pdev *pdev);
/*** /**
* dp_mon_filter_reset_enhanced_stats() - Reset the enhanced stats filter * dp_mon_filter_reset_enhanced_stats_2_0() - Reset the enhanced stats filter
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_reset_enhanced_stats_2_0(struct dp_pdev *pdev); void dp_mon_filter_reset_enhanced_stats_2_0(struct dp_pdev *pdev);
@@ -119,15 +119,15 @@ dp_mon_filter_reset_enhanced_stats_2_0(struct dp_pdev *pdev)
#endif #endif
#ifdef QCA_UNDECODED_METADATA_SUPPORT #ifdef QCA_UNDECODED_METADATA_SUPPORT
/* /**
* dp_mon_filter_setup_undecoded_metadata_capture() - Setup the filter * dp_mon_filter_setup_undecoded_metadata_capture_2_0() - Setup the filter
* for undecoded metadata capture * for undecoded metadata capture
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_setup_undecoded_metadata_capture_2_0(struct dp_pdev *pdev); void dp_mon_filter_setup_undecoded_metadata_capture_2_0(struct dp_pdev *pdev);
/* /**
* dp_mon_filter_reset_undecoded_metadata_capture() - Reset the filter * dp_mon_filter_reset_undecoded_metadata_capture_2_0() - Reset the filter
* for undecoded metadata capture * for undecoded metadata capture
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
@@ -145,32 +145,33 @@ dp_mon_filter_reset_undecoded_metadata_capture_2_0(struct dp_pdev *pdev)
#endif #endif
/** /**
* dp_mon_filter_setup_rx_mon_mode() - Setup the Rx monitor mode filter * dp_mon_filter_setup_rx_mon_mode_2_0() - Setup the Rx monitor mode filter
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_setup_rx_mon_mode_2_0(struct dp_pdev *pdev); void dp_mon_filter_setup_rx_mon_mode_2_0(struct dp_pdev *pdev);
/** /**
* dp_mon_filter_reset_mon_mode() - Reset the Rx monitor mode filter * dp_mon_filter_reset_rx_mon_mode_2_0() - Reset the Rx monitor mode filter
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_reset_rx_mon_mode_2_0(struct dp_pdev *pdev); void dp_mon_filter_reset_rx_mon_mode_2_0(struct dp_pdev *pdev);
/** /**
* dp_mon_filter_setup_tx_mon_mode() - Setup the Tx monitor mode filter * dp_mon_filter_setup_tx_mon_mode_2_0() - Setup the Tx monitor mode filter
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_setup_tx_mon_mode_2_0(struct dp_pdev *pdev); void dp_mon_filter_setup_tx_mon_mode_2_0(struct dp_pdev *pdev);
/** /**
* dp_mon_filter_reset_tx_mon_mode() - Reset the Tx monitor mode filter * dp_mon_filter_reset_tx_mon_mode_2_0() - Reset the Tx monitor mode filter
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_reset_tx_mon_mode_2_0(struct dp_pdev *pdev); void dp_mon_filter_reset_tx_mon_mode_2_0(struct dp_pdev *pdev);
#ifdef WDI_EVENT_ENABLE #ifdef WDI_EVENT_ENABLE
/** /**
* dp_mon_filter_setup_rx_pkt_log_full() - Setup the Rx pktlog full mode filter * dp_mon_filter_setup_rx_pkt_log_full_2_0() - Setup the Rx pktlog full mode
* filter
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_setup_rx_pkt_log_full_2_0(struct dp_pdev *pdev); void dp_mon_filter_setup_rx_pkt_log_full_2_0(struct dp_pdev *pdev);
@@ -182,27 +183,28 @@ void dp_mon_filter_setup_rx_pkt_log_full_2_0(struct dp_pdev *pdev);
void dp_mon_filter_reset_rx_pkt_log_full_2_0(struct dp_pdev *pdev); void dp_mon_filter_reset_rx_pkt_log_full_2_0(struct dp_pdev *pdev);
/** /**
* dp_mon_filter_setup_rx_pkt_log_lite() - Setup the Rx pktlog lite mode filter * dp_mon_filter_setup_rx_pkt_log_lite_2_0() - Setup the Rx pktlog lite mode
* in the radio object. * filter in the radio object.
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_setup_rx_pkt_log_lite_2_0(struct dp_pdev *pdev); void dp_mon_filter_setup_rx_pkt_log_lite_2_0(struct dp_pdev *pdev);
/** /**
* dp_mon_filter_reset_rx_pkt_log_lite() - Reset the Rx pktlog lite mode filter * dp_mon_filter_reset_rx_pkt_log_lite_2_0() - Reset the Rx pktlog lite mode
* filter in the radio object.
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_reset_rx_pkt_log_lite_2_0(struct dp_pdev *pdev); void dp_mon_filter_reset_rx_pkt_log_lite_2_0(struct dp_pdev *pdev);
/** /**
* dp_mon_filter_setup_rx_pkt_log_cbf() - Setup the Rx pktlog cbf mode filter * dp_mon_filter_setup_rx_pkt_log_cbf_2_0() - Setup the Rx pktlog cbf mode
* in the radio object. * filter in the radio object.
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_setup_rx_pkt_log_cbf_2_0(struct dp_pdev *pdev); void dp_mon_filter_setup_rx_pkt_log_cbf_2_0(struct dp_pdev *pdev);
/** /**
* dp_mon_filter_reset_rx_pktlog_cbf() - Reset the Rx pktlog cbf mode filter * dp_mon_filter_reset_rx_pktlog_cbf_2_0() - Reset the Rx pktlog cbf mode filter
* @pdev: DP pdev handle * @pdev: DP pdev handle
*/ */
void dp_mon_filter_reset_rx_pktlog_cbf_2_0(struct dp_pdev *pdev); void dp_mon_filter_reset_rx_pktlog_cbf_2_0(struct dp_pdev *pdev);

View File

@@ -1,6 +1,6 @@
/* /*
* Copyright (c) 2021, The Linux Foundation. All rights reserved. * Copyright (c) 2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
* *
* Permission to use, copy, modify, and/or distribute this software for any * Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above * purpose with or without fee is hereby granted, provided that the above
@@ -138,7 +138,7 @@ __dp_rx_mon_free_ppdu_info(struct dp_mon_pdev *mon_pdev,
} }
/** /**
* dp_rx_mon_nbuf_add_rx_frag () - Add frag to SKB * dp_rx_mon_nbuf_add_rx_frag() - Add frag to SKB
* *
* @nbuf: SKB to which frag is going to be added * @nbuf: SKB to which frag is going to be added
* @frag: frag to be added to SKB * @frag: frag to be added to SKB
@@ -174,7 +174,7 @@ dp_rx_mon_nbuf_add_rx_frag(qdf_nbuf_t nbuf, qdf_frag_t *frag,
* @mon_pdev: monitor pdev * @mon_pdev: monitor pdev
* @nbuf: SKB to be freed * @nbuf: SKB to be freed
* *
* @Return: void * Return: void
*/ */
void void
dp_mon_free_parent_nbuf(struct dp_mon_pdev *mon_pdev, dp_mon_free_parent_nbuf(struct dp_mon_pdev *mon_pdev,
@@ -385,7 +385,7 @@ static void dp_rx_mon_free_mpdu_queue(struct dp_mon_pdev *mon_pdev,
} }
/** /**
* dp_rx_mon_free_ppdu_info () - Free PPDU info * dp_rx_mon_free_ppdu_info() - Free PPDU info
* @pdev: DP pdev * @pdev: DP pdev
* @ppdu_info: PPDU info * @ppdu_info: PPDU info
* *
@@ -441,7 +441,7 @@ void dp_rx_mon_drain_wq(struct dp_pdev *pdev)
* *
* @mon_pdev: monitor pdev * @mon_pdev: monitor pdev
* @mpdu: MPDU nbuf * @mpdu: MPDU nbuf
* @status: monitor status * @rx_status: monitor status
* *
* Return: QDF_STATUS * Return: QDF_STATUS
*/ */
@@ -471,7 +471,7 @@ dp_rx_mon_deliver_mpdu(struct dp_mon_pdev *mon_pdev,
} }
/** /**
* dp_rx_mon_process_ppdu_info () - Process PPDU info * dp_rx_mon_process_ppdu_info() - Process PPDU info
* @pdev: DP pdev * @pdev: DP pdev
* @ppdu_info: PPDU info * @ppdu_info: PPDU info
* *
@@ -565,7 +565,7 @@ dp_rx_mon_process_ppdu_info(struct dp_pdev *pdev,
} }
/** /**
* dp_rx_mon_process_ppdu ()- Deferred monitor processing * dp_rx_mon_process_ppdu()- Deferred monitor processing
* This workqueue API handles: * This workqueue API handles:
* a. Full monitor * a. Full monitor
* b. Lite monitor * b. Lite monitor
@@ -610,9 +610,9 @@ void dp_rx_mon_process_ppdu(void *context)
} }
/** /**
* dp_rx_mon_add_ppdu_info_to_wq () - Add PPDU info to workqueue * dp_rx_mon_add_ppdu_info_to_wq() - Add PPDU info to workqueue
* *
* @mon_pdev: monitor pdev * @pdev: monitor pdev
* @ppdu_info: ppdu info to be added to workqueue * @ppdu_info: ppdu info to be added to workqueue
* *
* Return: SUCCESS or FAILIRE * Return: SUCCESS or FAILIRE
@@ -1042,7 +1042,7 @@ dp_rx_mon_flush_packet_tlv(struct dp_pdev *pdev, void *buf, uint16_t end_offset,
} }
/** /**
* dp_rx_mon_flush_status_buf_queue () - Flush status buffer queue * dp_rx_mon_flush_status_buf_queue() - Flush status buffer queue
* *
* @pdev: DP pdev handle * @pdev: DP pdev handle
* *
@@ -1108,7 +1108,7 @@ dp_rx_mon_flush_status_buf_queue(struct dp_pdev *pdev)
} }
/** /**
* dp_rx_mon_handle_flush_n_trucated_ppdu () - Handle flush and truncated ppdu * dp_rx_mon_handle_flush_n_trucated_ppdu() - Handle flush and truncated ppdu
* *
* @soc: DP soc handle * @soc: DP soc handle
* @pdev: pdev handle * @pdev: pdev handle
@@ -1497,7 +1497,7 @@ uint8_t dp_rx_mon_process_tlv_status(struct dp_pdev *pdev,
} }
/** /**
* dp_rx_mon_process_status_tlv () - Handle mon status process TLV * dp_rx_mon_process_status_tlv() - Handle mon status process TLV
* *
* @pdev: DP pdev handle * @pdev: DP pdev handle
* *
@@ -1618,6 +1618,8 @@ dp_rx_mon_process_status_tlv(struct dp_pdev *pdev)
return ppdu_info; return ppdu_info;
} }
#ifdef WLAN_FEATURE_11BE_MLO
#define DP_PEER_ID_MASK 0x3FFF
/** /**
* dp_rx_mon_update_peer_id() - Update sw_peer_id with link peer_id * dp_rx_mon_update_peer_id() - Update sw_peer_id with link peer_id
* *
@@ -1626,8 +1628,6 @@ dp_rx_mon_process_status_tlv(struct dp_pdev *pdev)
* *
* Return: none * Return: none
*/ */
#ifdef WLAN_FEATURE_11BE_MLO
#define DP_PEER_ID_MASK 0x3FFF
static inline static inline
void dp_rx_mon_update_peer_id(struct dp_pdev *pdev, void dp_rx_mon_update_peer_id(struct dp_pdev *pdev,
struct hal_rx_ppdu_info *ppdu_info) struct hal_rx_ppdu_info *ppdu_info)

View File

@@ -1,6 +1,6 @@
/* /*
* Copyright (c) 2021, The Linux Foundation. All rights reserved. * Copyright (c) 2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
* *
* Permission to use, copy, modify, and/or distribute this software for any * Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above * purpose with or without fee is hereby granted, provided that the above
@@ -104,9 +104,9 @@ QDF_STATUS
dp_rx_mon_buf_desc_pool_alloc(struct dp_soc *soc); dp_rx_mon_buf_desc_pool_alloc(struct dp_soc *soc);
/** /**
* dp_rx_mon_stats_update_2_0 () - update rx stats * dp_rx_mon_stats_update_2_0() - update rx stats
* *
* @peer: monitor peer handle * @mon_peer: monitor peer handle
* @ppdu: Rx PPDU status metadata object * @ppdu: Rx PPDU status metadata object
* @ppdu_user: Rx PPDU user status metadata object * @ppdu_user: Rx PPDU user status metadata object
* *
@@ -117,7 +117,7 @@ void dp_rx_mon_stats_update_2_0(struct dp_mon_peer *mon_peer,
struct cdp_rx_stats_ppdu_user *ppdu_user); struct cdp_rx_stats_ppdu_user *ppdu_user);
/** /**
* dp_rx_mon_populate_ppdu_usr_info_2_0 () - Populate ppdu user info * dp_rx_mon_populate_ppdu_usr_info_2_0() - Populate ppdu user info
* *
* @rx_user_status: Rx user status * @rx_user_status: Rx user status
* @ppdu_user: ppdu user metadata * @ppdu_user: ppdu user metadata
@@ -129,7 +129,7 @@ dp_rx_mon_populate_ppdu_usr_info_2_0(struct mon_rx_user_status *rx_user_status,
struct cdp_rx_stats_ppdu_user *ppdu_user); struct cdp_rx_stats_ppdu_user *ppdu_user);
/** /**
* dp_rx_mon_populate_ppdu_info_2_0 () -- Populate ppdu info * dp_rx_mon_populate_ppdu_info_2_0() -- Populate ppdu info
* *
* @hal_ppdu_info: HAL PPDU info * @hal_ppdu_info: HAL PPDU info
* @ppdu: Rx PPDU status metadata object * @ppdu: Rx PPDU status metadata object
@@ -140,7 +140,7 @@ void
dp_rx_mon_populate_ppdu_info_2_0(struct hal_rx_ppdu_info *hal_ppdu_info, dp_rx_mon_populate_ppdu_info_2_0(struct hal_rx_ppdu_info *hal_ppdu_info,
struct cdp_rx_indication_ppdu *ppdu); struct cdp_rx_indication_ppdu *ppdu);
/* /**
* dp_rx_process_pktlog_be() - process pktlog * dp_rx_process_pktlog_be() - process pktlog
* @soc: dp soc handle * @soc: dp soc handle
* @pdev: dp pdev handle * @pdev: dp pdev handle
@@ -148,7 +148,7 @@ dp_rx_mon_populate_ppdu_info_2_0(struct hal_rx_ppdu_info *hal_ppdu_info,
* @status_frag: frag pointer which needs to be added to nbuf * @status_frag: frag pointer which needs to be added to nbuf
* @end_offset: Offset in frag to be added to nbuf_frags * @end_offset: Offset in frag to be added to nbuf_frags
* *
* Return: SUCCESS or Failure * Return: QDF_STATUS_SUCCESS or Failure
*/ */
QDF_STATUS dp_rx_process_pktlog_be(struct dp_soc *soc, struct dp_pdev *pdev, QDF_STATUS dp_rx_process_pktlog_be(struct dp_soc *soc, struct dp_pdev *pdev,
struct hal_rx_ppdu_info *ppdu_info, struct hal_rx_ppdu_info *ppdu_info,
@@ -156,7 +156,7 @@ QDF_STATUS dp_rx_process_pktlog_be(struct dp_soc *soc, struct dp_pdev *pdev,
#if !defined(DISABLE_MON_CONFIG) #if !defined(DISABLE_MON_CONFIG)
/* /*
* dp_rx_mon_process_2_0 () - Process Rx monitor interrupt * dp_rx_mon_process_2_0() - Process Rx monitor interrupt
* *
* @soc: DP soc handle * @soc: DP soc handle
* @int_ctx: Interrupt context * @int_ctx: Interrupt context
@@ -168,7 +168,7 @@ dp_rx_mon_process_2_0(struct dp_soc *soc, struct dp_intr *int_ctx,
uint32_t mac_id, uint32_t quota); uint32_t mac_id, uint32_t quota);
/** /**
* dp_rx_mon_process_ppdu () - RxMON Workqueue processing API * dp_rx_mon_process_ppdu() - RxMON Workqueue processing API
* *
* @context: workqueue context * @context: workqueue context
*/ */
@@ -215,7 +215,7 @@ void dp_rx_mon_drain_wq(struct dp_pdev *pdev);
* @mon_pdev: monitor pdev * @mon_pdev: monitor pdev
* @nbuf: SKB to be freed * @nbuf: SKB to be freed
* *
* @Return: void * Return: void
*/ */
void void
dp_mon_free_parent_nbuf(struct dp_mon_pdev *mon_pdev, dp_mon_free_parent_nbuf(struct dp_mon_pdev *mon_pdev,
@@ -234,7 +234,7 @@ void dp_rx_mon_shift_pf_tag_in_headroom(qdf_nbuf_t nbuf, struct dp_soc *soc)
} }
#endif /* WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG */ #endif /* WLAN_SUPPORT_RX_PROTOCOL_TYPE_TAG */
/** /**
* dp_mon_rx_print_advanced_stats_2_0 () - print advanced monitor statistics * dp_mon_rx_print_advanced_stats_2_0() - print advanced monitor statistics
* *
* @soc: DP soc handle * @soc: DP soc handle
* @pdev: DP pdev handle * @pdev: DP pdev handle

View File

@@ -942,7 +942,7 @@ dp_tx_mon_send_to_stack(struct dp_pdev *pdev, qdf_nbuf_t mpdu,
* dp_tx_mon_send_per_usr_mpdu() - API to send per usr mpdu to stack * dp_tx_mon_send_per_usr_mpdu() - API to send per usr mpdu to stack
* @pdev: pdev Handle * @pdev: pdev Handle
* @ppdu_info: pointer to dp_tx_ppdu_info * @ppdu_info: pointer to dp_tx_ppdu_info
* @user_id: current user index * @user_idx: current user index
* *
* Return: void * Return: void
*/ */
@@ -1146,7 +1146,7 @@ dp_tx_mon_update_radiotap(struct dp_pdev *pdev,
* *
* Return: none * Return: none
*/ */
void dp_tx_mon_ppdu_process(void *context) static void dp_tx_mon_ppdu_process(void *context)
{ {
struct dp_pdev *pdev = (struct dp_pdev *)context; struct dp_pdev *pdev = (struct dp_pdev *)context;
struct dp_mon_pdev *mon_pdev; struct dp_mon_pdev *mon_pdev;
@@ -1200,12 +1200,6 @@ void dp_tx_mon_ppdu_process(void *context)
} }
} }
/**
* dp_tx_ppdu_stats_attach_2_0 - Initialize Tx PPDU stats and enhanced capture
* @pdev: DP PDEV
*
* Return: none
*/
void dp_tx_ppdu_stats_attach_2_0(struct dp_pdev *pdev) void dp_tx_ppdu_stats_attach_2_0(struct dp_pdev *pdev)
{ {
struct dp_mon_pdev *mon_pdev; struct dp_mon_pdev *mon_pdev;
@@ -1241,12 +1235,6 @@ void dp_tx_ppdu_stats_attach_2_0(struct dp_pdev *pdev)
qdf_alloc_unbound_workqueue("tx_mon_ppdu_work_queue"); qdf_alloc_unbound_workqueue("tx_mon_ppdu_work_queue");
} }
/**
* dp_tx_ppdu_stats_detach_be - Cleanup Tx PPDU stats and enhanced capture
* @pdev: DP PDEV
*
* Return: none
*/
void dp_tx_ppdu_stats_detach_2_0(struct dp_pdev *pdev) void dp_tx_ppdu_stats_detach_2_0(struct dp_pdev *pdev)
{ {
struct dp_mon_pdev *mon_pdev; struct dp_mon_pdev *mon_pdev;

View File

@@ -1,6 +1,6 @@
/* /*
* Copyright (c) 2021, The Linux Foundation. All rights reserved. * Copyright (c) 2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
* *
* Permission to use, copy, modify, and/or distribute this software for any * Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above * purpose with or without fee is hereby granted, provided that the above
@@ -24,9 +24,9 @@
struct dp_mon_desc; struct dp_mon_desc;
/** /**
* dp_tx_mon_desc_list - structure to store double linked liskt * struct dp_tx_mon_desc_list - structure to store descriptor linked list
* @tx_ppdu_info_dlist_elem: support adding to double linked list * @desc_list: descriptor list
* @tx_ppdu_info_slist_elem: support adding to single linked list * @tail: descriptor list tail
* @tx_mon_reap_cnt: tx monitor reap count * @tx_mon_reap_cnt: tx monitor reap count
*/ */
struct dp_tx_mon_desc_list { struct dp_tx_mon_desc_list {
@@ -35,9 +35,10 @@ struct dp_tx_mon_desc_list {
uint32_t tx_mon_reap_cnt; uint32_t tx_mon_reap_cnt;
}; };
/* /**
* dp_tx_mon_buffers_alloc() - allocate tx monitor buffers * dp_tx_mon_buffers_alloc() - allocate tx monitor buffers
* @soc: DP soc handle * @soc: DP soc handle
* @size: buffer size
* *
* Return: QDF_STATUS_SUCCESS: Success * Return: QDF_STATUS_SUCCESS: Success
* QDF_STATUS_E_FAILURE: Error * QDF_STATUS_E_FAILURE: Error
@@ -45,7 +46,7 @@ struct dp_tx_mon_desc_list {
QDF_STATUS QDF_STATUS
dp_tx_mon_buffers_alloc(struct dp_soc *soc, uint32_t size); dp_tx_mon_buffers_alloc(struct dp_soc *soc, uint32_t size);
/* /**
* dp_tx_mon_buffers_free() - free tx monitor buffers * dp_tx_mon_buffers_free() - free tx monitor buffers
* @soc: dp soc handle * @soc: dp soc handle
* *
@@ -53,16 +54,16 @@ dp_tx_mon_buffers_alloc(struct dp_soc *soc, uint32_t size);
void void
dp_tx_mon_buffers_free(struct dp_soc *soc); dp_tx_mon_buffers_free(struct dp_soc *soc);
/* /**
* dp_tx_mon_desc_pool_deinit() - deinit tx monitor descriptor pool * dp_tx_mon_buf_desc_pool_deinit() - deinit tx monitor descriptor pool
* @soc: dp soc handle * @soc: dp soc handle
* *
*/ */
void void
dp_tx_mon_buf_desc_pool_deinit(struct dp_soc *soc); dp_tx_mon_buf_desc_pool_deinit(struct dp_soc *soc);
/* /**
* dp_tx_mon_desc_pool_deinit() - deinit tx monitor descriptor pool * dp_tx_mon_buf_desc_pool_init() - init tx monitor descriptor pool
* @soc: dp soc handle * @soc: dp soc handle
* *
* Return: QDF_STATUS_SUCCESS: Success * Return: QDF_STATUS_SUCCESS: Success
@@ -71,14 +72,14 @@ dp_tx_mon_buf_desc_pool_deinit(struct dp_soc *soc);
QDF_STATUS QDF_STATUS
dp_tx_mon_buf_desc_pool_init(struct dp_soc *soc); dp_tx_mon_buf_desc_pool_init(struct dp_soc *soc);
/* /**
* dp_tx_mon_buf_desc_pool_free() - free tx monitor descriptor pool * dp_tx_mon_buf_desc_pool_free() - free tx monitor descriptor pool
* @soc: dp soc handle * @soc: dp soc handle
* *
*/ */
void dp_tx_mon_buf_desc_pool_free(struct dp_soc *soc); void dp_tx_mon_buf_desc_pool_free(struct dp_soc *soc);
/* /**
* dp_tx_mon_buf_desc_pool_alloc() - allocate tx monitor descriptor pool * dp_tx_mon_buf_desc_pool_alloc() - allocate tx monitor descriptor pool
* @soc: DP soc handle * @soc: DP soc handle
* *
@@ -91,9 +92,9 @@ dp_tx_mon_buf_desc_pool_alloc(struct dp_soc *soc);
/** /**
* dp_tx_mon_update_end_reason() - API to update end reason * dp_tx_mon_update_end_reason() - API to update end reason
* *
* @mon_pdev - DP_MON_PDEV handle * @mon_pdev: DP_MON_PDEV handle
* @ppdu_id - ppdu_id * @ppdu_id: ppdu_id
* @end_reason - monitor destination descriptor end reason * @end_reason: monitor destination descriptor end reason
* *
* Return: void * Return: void
*/ */
@@ -130,15 +131,15 @@ dp_tx_mon_status_free_packet_buf(struct dp_pdev *pdev,
QDF_STATUS QDF_STATUS
dp_tx_process_pktlog_be(struct dp_soc *soc, struct dp_pdev *pdev, dp_tx_process_pktlog_be(struct dp_soc *soc, struct dp_pdev *pdev,
void *status_frag, uint32_t end_offset); void *status_frag, uint32_t end_offset);
/* /**
* dp_tx_mon_process_status_tlv() - API to processed TLV * dp_tx_mon_process_status_tlv() - API to processed TLV
* invoked from interrupt handler * invoked from interrupt handler
* *
* @soc - DP_SOC handle * @soc: DP_SOC handle
* @pdev - DP_PDEV handle * @pdev: DP_PDEV handle
* @mon_ring_desc - descriptor status info * @mon_ring_desc: descriptor status info
* @addr - status buffer frag address * @status_frag: status buffer frag address
* @end_offset - end offset of buffer that has valid buffer * @end_offset: end offset of buffer that has valid buffer
* @mon_desc_list_ref: tx monitor descriptor list reference * @mon_desc_list_ref: tx monitor descriptor list reference
* *
* Return: QDF_STATUS * Return: QDF_STATUS
@@ -151,7 +152,7 @@ dp_tx_mon_process_status_tlv(struct dp_soc *soc,
uint32_t end_offset, uint32_t end_offset,
struct dp_tx_mon_desc_list *mon_desc_list_ref); struct dp_tx_mon_desc_list *mon_desc_list_ref);
/* /**
* dp_tx_mon_process_2_0() - tx monitor interrupt process * dp_tx_mon_process_2_0() - tx monitor interrupt process
* @soc: dp soc handle * @soc: dp soc handle
* @int_ctx: interrupt context * @int_ctx: interrupt context
@@ -163,7 +164,7 @@ uint32_t
dp_tx_mon_process_2_0(struct dp_soc *soc, struct dp_intr *int_ctx, dp_tx_mon_process_2_0(struct dp_soc *soc, struct dp_intr *int_ctx,
uint32_t mac_id, uint32_t quota); uint32_t mac_id, uint32_t quota);
/* /**
* dp_tx_mon_print_ring_stat_2_0() - Print monitor ring stats * dp_tx_mon_print_ring_stat_2_0() - Print monitor ring stats
* @pdev: dp pdev handle * @pdev: dp pdev handle
* *
@@ -202,7 +203,11 @@ dp_tx_mon_print_ring_stat_2_0(struct dp_pdev *pdev);
#define RESPONSE_WINDOW 1 #define RESPONSE_WINDOW 1
/** /**
* bf_type - tx monitor supported Beamformed type * enum bf_type - tx monitor supported Beamformed type
* @NO_BF:
* @LEGACY_BF:
* @SU_BF:
* @MU_BF:
*/ */
enum bf_type { enum bf_type {
NO_BF = 0, NO_BF = 0,
@@ -212,7 +217,9 @@ enum bf_type {
}; };
/** /**
* dot11b_preamble_type - tx monitor supported 11b preamble type * enum dot11b_preamble_type - tx monitor supported 11b preamble type
* @SHORT_PREAMBLE:
* @LONG_PREAMBLE:
*/ */
enum dot11b_preamble_type { enum dot11b_preamble_type {
SHORT_PREAMBLE = 0, SHORT_PREAMBLE = 0,
@@ -220,7 +227,13 @@ enum dot11b_preamble_type {
}; };
/** /**
* bw_type - tx monitor supported bandwidth type * enum bw_type - tx monitor supported bandwidth type
* @TXMON_BW_20_MHZ:
* @TXMON_BW_40_MHZ:
* @TXMON_BW_80_MHZ:
* @TXMON_BW_160_MHZ:
* @TXMON_BW_240_MHZ:
* @TXMON_BW_320_MHZ:
*/ */
enum bw_type { enum bw_type {
TXMON_BW_20_MHZ = 0, TXMON_BW_20_MHZ = 0,
@@ -232,7 +245,13 @@ enum bw_type {
}; };
/** /**
* ppdu_start_reason - tx monitor supported PPDU start reason type * enum ppdu_start_reason - tx monitor supported PPDU start reason type
* @TXMON_FES_PROTECTION_FRAME:
* @TXMON_FES_AFTER_PROTECTION:
* @TXMON_FES_ONLY:
* @TXMON_RESPONSE_FRAME:
* @TXMON_TRIG_RESPONSE_FRAME:
* @TXMON_DYNAMIC_PROTECTION_FES_ONLY:
*/ */
enum ppdu_start_reason { enum ppdu_start_reason {
TXMON_FES_PROTECTION_FRAME, TXMON_FES_PROTECTION_FRAME,
@@ -244,7 +263,11 @@ enum ppdu_start_reason {
}; };
/** /**
* guard_interval - tx monitor supported Guard interval type * enum guard_interval - tx monitor supported Guard interval type
* @TXMON_GI_0_8_US:
* @TXMON_GI_0_4_US:
* @TXMON_GI_1_6_US:
* @TXMON_GI_3_2_US:
*/ */
enum guard_interval { enum guard_interval {
TXMON_GI_0_8_US = 0, TXMON_GI_0_8_US = 0,
@@ -254,7 +277,19 @@ enum guard_interval {
}; };
/** /**
* RU_size_start - tx monitor supported RU size start type * enum RU_size_start - tx monitor supported RU size start type
* @TXMON_RU_26:
* @TXMON_RU_52:
* @TXMON_RU_106:
* @TXMON_RU_242:
* @TXMON_RU_484:
* @TXMON_RU_996:
* @TXMON_RU_1992:
* @TXMON_RU_FULLBW_240:
* @TXMON_RU_FULLBW_320:
* @TXMON_RU_MULTI_LARGE:
* @TXMON_RU_78:
* @TXMON_RU_132:
*/ */
enum RU_size_start { enum RU_size_start {
TXMON_RU_26 = 0, TXMON_RU_26 = 0,
@@ -272,7 +307,33 @@ enum RU_size_start {
}; };
/** /**
* response_type_expected - expected response type * enum response_type_expected - expected response type
* @TXMON_RESP_NO_RESP:
* @TXMON_RESP_ACK:
* @TXMON_RESP_BA_64_BITMAP:
* @TXMON_RESP_BA_256:
* @TXMON_RESP_ACTIONNOACK:
* @TXMON_RESP_ACK_BA:
* @TXMON_RESP_CTS:
* @TXMON_RESP_ACK_DATA:
* @TXMON_RESP_NDP_ACK:
* @TXMON_RESP_NDP_MODIFIED_ACK:
* @TXMON_RESP_NDP_BA:
* @TXMON_RESP_NDP_CTS:
* @TXMON_RESP_NDP_ACK_OR_NDP_MODIFIED_ACK:
* @TXMON_RESP_UL_MU_BA:
* @TXMON_RESP_UL_MU_BA_AND_DATA:
* @TXMON_RESP_UL_MU_CBF:
* @TXMON_RESP_UL_MU_FRAMES:
* @TXMON_RESP_ANY_RESP_TO_DEVICE:
* @TXMON_RESP_ANY_RESP_ACCEPTED:
* @TXMON_RESP_FRAMELESS_PHYRX_RESP_ACCEPTED:
* @TXMON_RESP_RANGING_NDP_AND_LMR:
* @TXMON_RESP_BA_512:
* @TXMON_RESP_BA_1024:
* @TXMON_RESP_UL_MU_RANGING_CTS2S:
* @TXMON_RESP_UL_MU_RANGING_NDP:
* @TXMON_RESP_UL_MU_RANGING_LMR:
*/ */
enum response_type_expected { enum response_type_expected {
TXMON_RESP_NO_RESP = 0, TXMON_RESP_NO_RESP = 0,
@@ -304,7 +365,11 @@ enum response_type_expected {
}; };
/** /**
* resposne_to_respone - tx monitor supported response to response type * enum resposne_to_respone - tx monitor supported response to response type
* @TXMON_RESP_TO_RESP_NONE:
* @TXMON_RESP_TO_RESP_SU_BA:
* @TXMON_RESP_TO_RESP_MU_BA:
* @TXMON_RESP_TO_RESP_CMD:
*/ */
enum resposne_to_respone { enum resposne_to_respone {
TXMON_RESP_TO_RESP_NONE = 0, TXMON_RESP_TO_RESP_NONE = 0,
@@ -314,7 +379,14 @@ enum resposne_to_respone {
}; };
/** /**
* medium_protection_type - tx monitor supported protection type * enum medium_protection_type - tx monitor supported protection type
* @TXMON_MEDIUM_NO_PROTECTION:
* @TXMON_MEDIUM_RTS_LEGACY:
* @TXMON_MEDIUM_RTS_11AC_STATIC_BW:
* @TXMON_MEDIUM_RTS_11AC_DYNAMIC_BW:
* @TXMON_MEDIUM_CTS2SELF:
* @TXMON_MEDIUM_QOS_NULL_NO_ACK_3ADDR:
* @TXMON_MEDIUM_QOS_NULL_NO_ACK_4ADDR:
*/ */
enum medium_protection_type { enum medium_protection_type {
TXMON_MEDIUM_NO_PROTECTION, TXMON_MEDIUM_NO_PROTECTION,
@@ -327,7 +399,11 @@ enum medium_protection_type {
}; };
/** /**
* ndp_frame - tx monitor supported ndp frame type * enum ndp_frame - tx monitor supported ndp frame type
* @TXMON_NO_NDP_TRANSMISSION:
* @TXMON_BEAMFORMING_NDP:
* @TXMON_HE_RANGING_NDP:
* @TXMON_HE_FEEDBACK_NDP:
*/ */
enum ndp_frame { enum ndp_frame {
TXMON_NO_NDP_TRANSMISSION, TXMON_NO_NDP_TRANSMISSION,
@@ -337,7 +413,9 @@ enum ndp_frame {
}; };
/** /**
* tx_ppdu_info_type - tx monitor supported ppdu type * enum tx_ppdu_info_type - tx monitor supported ppdu type
* @TX_PROT_PPDU_INFO:
* @TX_DATA_PPDU_INFO:
*/ */
enum tx_ppdu_info_type { enum tx_ppdu_info_type {
TX_PROT_PPDU_INFO, TX_PROT_PPDU_INFO,
@@ -345,10 +423,11 @@ enum tx_ppdu_info_type {
}; };
/** /**
* dp_tx_ppdu_info - structure to store tx ppdu info * struct dp_tx_ppdu_info - structure to store tx ppdu info
* @ppdu_id: current ppdu info ppdu id * @ppdu_id: current ppdu info ppdu id
* @frametype: ppdu info frame type * @frame_type: ppdu info frame type
* @cur_usr_idx: current user index of ppdu info * @cur_usr_idx: current user index of ppdu info
* @ulist: union of linked lists
* @tx_ppdu_info_dlist_elem: support adding to double linked list * @tx_ppdu_info_dlist_elem: support adding to double linked list
* @tx_ppdu_info_slist_elem: support adding to single linked list * @tx_ppdu_info_slist_elem: support adding to single linked list
* @hal_txmon: hal tx monitor info for that ppdu * @hal_txmon: hal tx monitor info for that ppdu
@@ -370,7 +449,8 @@ struct dp_tx_ppdu_info {
}; };
/** /**
* dp_tx_monitor_drop_stats - structure to store tx monitor drop statistic * struct dp_tx_monitor_drop_stats - structure to store tx monitor drop
* statistics
* @ppdu_drop_cnt: ppdu drop counter * @ppdu_drop_cnt: ppdu drop counter
* @mpdu_drop_cnt: mpdu drop counter * @mpdu_drop_cnt: mpdu drop counter
* @tlv_drop_cnt: tlv drop counter * @tlv_drop_cnt: tlv drop counter
@@ -412,7 +492,7 @@ struct dp_tx_monitor_drop_stats {
}; };
/** /**
* dp_tx_monitor_mode - tx monitor supported mode * enum dp_tx_monitor_mode - tx monitor supported mode
* @TX_MON_BE_DISABLE: tx monitor disable * @TX_MON_BE_DISABLE: tx monitor disable
* @TX_MON_BE_FULL_CAPTURE: tx monitor mode to capture full packet * @TX_MON_BE_FULL_CAPTURE: tx monitor mode to capture full packet
* @TX_MON_BE_PEER_FILTER: tx monitor mode to capture peer filter * @TX_MON_BE_PEER_FILTER: tx monitor mode to capture peer filter
@@ -424,7 +504,7 @@ enum dp_tx_monitor_mode {
}; };
/** /**
* dp_tx_monitor_framework_mode - tx monitor framework mode * enum dp_tx_monitor_framework_mode - tx monitor framework mode
* @TX_MON_BE_FRM_WRK_DISABLE: tx monitor frame work disable * @TX_MON_BE_FRM_WRK_DISABLE: tx monitor frame work disable
* @TX_MON_BE_FRM_WRK_FULL_CAPTURE: tx monitor frame work full capture * @TX_MON_BE_FRM_WRK_FULL_CAPTURE: tx monitor frame work full capture
* @TX_MON_BE_FRM_WRK_128B_CAPTURE: tx monitor frame work 128B capture * @TX_MON_BE_FRM_WRK_128B_CAPTURE: tx monitor frame work 128B capture
@@ -462,7 +542,7 @@ enum dp_tx_monitor_framework_mode {
#ifndef WLAN_TX_PKT_CAPTURE_ENH_BE #ifndef WLAN_TX_PKT_CAPTURE_ENH_BE
/** /**
* dp_pdev_tx_monitor_be - info to store tx capture information in pdev * struct dp_pdev_tx_monitor_be - info to store tx capture information in pdev
* @be_ppdu_id: current ppdu id * @be_ppdu_id: current ppdu id
* @mode: tx monitor core framework current mode * @mode: tx monitor core framework current mode
* @stats: tx monitor drop stats for that mac * @stats: tx monitor drop stats for that mac
@@ -475,7 +555,7 @@ struct dp_pdev_tx_monitor_be {
}; };
/** /**
* dp_peer_tx_capture_be: Tx monitor peer structure * struct dp_peer_tx_capture_be - Tx monitor peer structure
* *
* This is a dummy structure * This is a dummy structure
*/ */
@@ -493,8 +573,10 @@ struct dp_txmon_frag_vec {
uint32_t end_offset; uint32_t end_offset;
}; };
/** /*
* dp_pdev_tx_monitor_be - info to store tx capture information in pdev * NB: intentionally not using kernel-doc comment because the kernel-doc
* script does not handle the STAILQ_HEAD macro
* struct dp_pdev_tx_monitor_be - info to store tx capture information in pdev
* @be_ppdu_id: current ppdu id * @be_ppdu_id: current ppdu id
* @be_end_reason_bitmap: current end reason bitmap * @be_end_reason_bitmap: current end reason bitmap
* @mode: tx monitor current mode * @mode: tx monitor current mode
@@ -556,7 +638,7 @@ struct dp_pdev_tx_monitor_be {
}; };
/** /**
* dp_peer_tx_capture_be: Tx monitor peer structure * struct dp_peer_tx_capture_be - Tx monitor peer structure
* *
* need to be added here * need to be added here
*/ */
@@ -564,19 +646,19 @@ struct dp_peer_tx_capture_be {
}; };
#endif /* WLAN_TX_PKT_CAPTURE_ENH_BE */ #endif /* WLAN_TX_PKT_CAPTURE_ENH_BE */
/* /**
* dp_tx_mon_ppdu_info_free() - API to free dp_tx_ppdu_info * dp_tx_mon_ppdu_info_free() - API to free dp_tx_ppdu_info
* @tx_ppdu_info - pointer to tx_ppdu_info * @tx_ppdu_info: pointer to tx_ppdu_info
* *
* Return: void * Return: void
*/ */
void dp_tx_mon_ppdu_info_free(struct dp_tx_ppdu_info *tx_ppdu_info); void dp_tx_mon_ppdu_info_free(struct dp_tx_ppdu_info *tx_ppdu_info);
/* /**
* dp_tx_mon_free_usr_mpduq() - API to free user mpduq * dp_tx_mon_free_usr_mpduq() - API to free user mpduq
* @tx_ppdu_info - pointer to tx_ppdu_info * @tx_ppdu_info: pointer to tx_ppdu_info
* @usr_idx - user index * @usr_idx: user index
* @tx_cap_be - pointer to tx capture be * @tx_mon_be: pointer to tx monitor be
* *
* Return: void * Return: void
*/ */
@@ -584,22 +666,22 @@ void dp_tx_mon_free_usr_mpduq(struct dp_tx_ppdu_info *tx_ppdu_info,
uint8_t usr_idx, uint8_t usr_idx,
struct dp_pdev_tx_monitor_be *tx_mon_be); struct dp_pdev_tx_monitor_be *tx_mon_be);
/* /**
* dp_tx_mon_free_ppdu_info() - API to free dp_tx_ppdu_info * dp_tx_mon_free_ppdu_info() - API to free dp_tx_ppdu_info
* @tx_ppdu_info - pointer to tx_ppdu_info * @tx_ppdu_info: pointer to tx_ppdu_info
* @tx_cap_be - pointer to tx capture be * @tx_mon_be: pointer to tx monitor be
* *
* Return: void * Return: void
*/ */
void dp_tx_mon_free_ppdu_info(struct dp_tx_ppdu_info *tx_ppdu_info, void dp_tx_mon_free_ppdu_info(struct dp_tx_ppdu_info *tx_ppdu_info,
struct dp_pdev_tx_monitor_be *tx_mon_be); struct dp_pdev_tx_monitor_be *tx_mon_be);
/* /**
* dp_tx_mon_get_ppdu_info() - API to allocate dp_tx_ppdu_info * dp_tx_mon_get_ppdu_info() - API to allocate dp_tx_ppdu_info
* @pdev - pdev handle * @pdev: pdev handle
* @type - type of ppdu_info data or protection * @type: type of ppdu_info data or protection
* @num_user - number user in a ppdu_info * @num_user: number user in a ppdu_info
* @ppdu_id - ppdu_id number * @ppdu_id: ppdu_id number
* *
* Return: pointer to dp_tx_ppdu_info * Return: pointer to dp_tx_ppdu_info
*/ */
@@ -625,7 +707,7 @@ void dp_tx_ppdu_stats_attach_2_0(struct dp_pdev *pdev);
*/ */
void dp_tx_ppdu_stats_detach_2_0(struct dp_pdev *pdev); void dp_tx_ppdu_stats_detach_2_0(struct dp_pdev *pdev);
/* /**
* dp_print_pdev_tx_monitor_stats_2_0: print tx capture stats * dp_print_pdev_tx_monitor_stats_2_0: print tx capture stats
* @pdev: DP PDEV handle * @pdev: DP PDEV handle
* *
@@ -633,19 +715,19 @@ void dp_tx_ppdu_stats_detach_2_0(struct dp_pdev *pdev);
*/ */
void dp_print_pdev_tx_monitor_stats_2_0(struct dp_pdev *pdev); void dp_print_pdev_tx_monitor_stats_2_0(struct dp_pdev *pdev);
/* /**
* dp_config_enh_tx_monitor_2_0()- API to enable/disable enhanced tx capture * dp_config_enh_tx_monitor_2_0()- API to enable/disable enhanced tx capture
* @pdev_handle: DP_PDEV handle * @pdev: DP_PDEV handle
* @val: user provided value * @val: user provided value
* *
* Return: QDF_STATUS * Return: QDF_STATUS
*/ */
QDF_STATUS dp_config_enh_tx_monitor_2_0(struct dp_pdev *pdev, uint8_t val); QDF_STATUS dp_config_enh_tx_monitor_2_0(struct dp_pdev *pdev, uint8_t val);
/* /**
* dp_peer_set_tx_capture_enabled_2_0() - add tx monitor peer filter * dp_peer_set_tx_capture_enabled_2_0() - add tx monitor peer filter
* @pdev: Datapath PDEV handle * @pdev_handle: Datapath PDEV handle
* @peer: Datapath PEER handle * @peer_handle: Datapath PEER handle
* @is_tx_pkt_cap_enable: flag for tx capture enable/disable * @is_tx_pkt_cap_enable: flag for tx capture enable/disable
* @peer_mac: peer mac address * @peer_mac: peer mac address
* *
@@ -658,9 +740,9 @@ QDF_STATUS dp_peer_set_tx_capture_enabled_2_0(struct dp_pdev *pdev_handle,
#endif /* WLAN_TX_PKT_CAPTURE_ENH_BE */ #endif /* WLAN_TX_PKT_CAPTURE_ENH_BE */
#if (defined(WIFI_MONITOR_SUPPORT) && !defined(WLAN_TX_PKT_CAPTURE_ENH_BE)) #if (defined(WIFI_MONITOR_SUPPORT) && !defined(WLAN_TX_PKT_CAPTURE_ENH_BE))
/* /**
* dp_config_enh_tx_core_monitor_2_0()- API to validate core framework * dp_config_enh_tx_core_monitor_2_0()- API to validate core framework
* @pdev_handle: DP_PDEV handle * @pdev: DP_PDEV handle
* @val: user provided value * @val: user provided value
* *
* Return: QDF_STATUS * Return: QDF_STATUS

View File

@@ -1,6 +1,6 @@
/* /*
* Copyright (c) 2021, The Linux Foundation. All rights reserved. * Copyright (c) 2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
* *
* Permission to use, copy, modify, and/or distribute this software for any * Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above * purpose with or without fee is hereby granted, provided that the above
@@ -28,15 +28,6 @@
#define MAX_PPDU_INFO_LIST_DEPTH 64 #define MAX_PPDU_INFO_LIST_DEPTH 64
/**
* dp_tx_mon_status_free_packet_buf() - API to free packet buffer
* @pdev: pdev Handle
* @status_frag: status frag
* @end_offset: status fragment end offset
* @mon_desc_list_ref: tx monitor descriptor list reference
*
* Return: void
*/
void void
dp_tx_mon_status_free_packet_buf(struct dp_pdev *pdev, dp_tx_mon_status_free_packet_buf(struct dp_pdev *pdev,
qdf_frag_t status_frag, uint32_t end_offset, qdf_frag_t status_frag, uint32_t end_offset,
@@ -156,6 +147,7 @@ dp_tx_mon_status_queue_free(struct dp_pdev *pdev,
/** /**
* dp_tx_mon_enqueue_mpdu_nbuf() - API to enqueue nbuf from per user mpdu queue * dp_tx_mon_enqueue_mpdu_nbuf() - API to enqueue nbuf from per user mpdu queue
* @pdev: pdev Handle
* @tx_ppdu_info: pointer to tx ppdu info structure * @tx_ppdu_info: pointer to tx ppdu info structure
* @user_id: user index * @user_id: user index
* @mpdu_nbuf: nbuf to be enqueue * @mpdu_nbuf: nbuf to be enqueue
@@ -1010,6 +1002,7 @@ dp_tx_mon_alloc_mpdu(struct dp_pdev *pdev, struct dp_tx_ppdu_info *tx_ppdu_info)
* dp_tx_mon_generate_data_frm() - API to generate data frame * dp_tx_mon_generate_data_frm() - API to generate data frame
* @pdev: pdev Handle * @pdev: pdev Handle
* @tx_ppdu_info: pointer to tx ppdu info structure * @tx_ppdu_info: pointer to tx ppdu info structure
* @take_ref:
* *
* Return: void * Return: void
*/ */
@@ -1446,9 +1439,9 @@ dp_tx_process_pktlog_be(struct dp_soc *soc, struct dp_pdev *pdev,
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
/* /**
* dp_tx_mon_process_tlv_2_0() - API to parse PPDU worth information * dp_tx_mon_process_tlv_2_0() - API to parse PPDU worth information
* @pdev_handle: DP_PDEV handle * @pdev: DP_PDEV handle
* @mon_desc_list_ref: tx monitor descriptor list reference * @mon_desc_list_ref: tx monitor descriptor list reference
* *
* Return: status * Return: status
@@ -1662,15 +1655,6 @@ dp_tx_mon_process_tlv_2_0(struct dp_pdev *pdev,
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
/**
* dp_tx_mon_update_end_reason() - API to update end reason
*
* @mon_pdev - DP_MON_PDEV handle
* @ppdu_id - ppdu_id
* @end_reason - monitor destination descriptor end reason
*
* Return: void
*/
void dp_tx_mon_update_end_reason(struct dp_mon_pdev *mon_pdev, void dp_tx_mon_update_end_reason(struct dp_mon_pdev *mon_pdev,
int ppdu_id, int end_reason) int ppdu_id, int end_reason)
{ {
@@ -1686,19 +1670,6 @@ void dp_tx_mon_update_end_reason(struct dp_mon_pdev *mon_pdev,
tx_mon_be->be_end_reason_bitmap |= (1 << end_reason); tx_mon_be->be_end_reason_bitmap |= (1 << end_reason);
} }
/*
* dp_tx_mon_process_status_tlv() - API to processed TLV
* invoked from interrupt handler
*
* @soc - DP_SOC handle
* @pdev - DP_PDEV handle
* @mon_ring_desc - descriptor status info
* @addr - status buffer frag address
* @end_offset - end offset of buffer that has valid buffer
* @mon_desc_list_ref: tx monitor descriptor list reference
*
* Return: QDF_STATUS
*/
QDF_STATUS QDF_STATUS
dp_tx_mon_process_status_tlv(struct dp_soc *soc, dp_tx_mon_process_status_tlv(struct dp_soc *soc,
struct dp_pdev *pdev, struct dp_pdev *pdev,
@@ -1812,19 +1783,6 @@ free_status_buffer:
#else #else
/**
* dp_tx_mon_process_status_tlv() - API to processed TLV
* invoked from interrupt handler
*
* @soc - DP_SOC handle
* @pdev - DP_PDEV handle
* @mon_ring_desc - descriptor status info
* @addr - status buffer frag address
* @end_offset - end offset of buffer that has valid buffer
* @mon_desc_list_ref: tx monitor descriptor list reference
*
* Return: QDF_STATUS
*/
QDF_STATUS QDF_STATUS
dp_tx_mon_process_status_tlv(struct dp_soc *soc, dp_tx_mon_process_status_tlv(struct dp_soc *soc,
struct dp_pdev *pdev, struct dp_pdev *pdev,
@@ -1859,15 +1817,6 @@ dp_tx_mon_process_status_tlv(struct dp_soc *soc,
return QDF_STATUS_E_INVAL; return QDF_STATUS_E_INVAL;
} }
/**
* dp_tx_mon_update_end_reason() - API to update end reason
*
* @mon_pdev - DP_MON_PDEV handle
* @ppdu_id - ppdu_id
* @end_reason - monitor destination descriptor end reason
*
* Return: void
*/
void dp_tx_mon_update_end_reason(struct dp_mon_pdev *mon_pdev, void dp_tx_mon_update_end_reason(struct dp_mon_pdev *mon_pdev,
int ppdu_id, int end_reason) int ppdu_id, int end_reason)
{ {

View File

@@ -1,6 +1,6 @@
/* /*
* Copyright (c) 2016-2021, The Linux Foundation. All rights reserved. * Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
* *
* Permission to use, copy, modify, and/or distribute this software for any * Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above * purpose with or without fee is hereby granted, provided that the above
@@ -449,8 +449,9 @@ dp_scan_spcl_vap_stats_detach(struct dp_mon_vdev *mon_vdev)
/** /**
* dp_vdev_set_monitor_mode() - Set DP VDEV to monitor mode * dp_vdev_set_monitor_mode() - Set DP VDEV to monitor mode
* @vdev_handle: Datapath VDEV handle * @dp_soc: DP soc context
* @smart_monitor: Flag to denote if its smart monitor mode * @vdev_id: vdev ID
* @special_monitor: Flag to denote if its smart monitor mode
* *
* Return: 0 on success, not 0 on failure * Return: 0 on success, not 0 on failure
*/ */
@@ -1477,12 +1478,12 @@ QDF_STATUS dp_peer_stats_notify(struct dp_pdev *dp_pdev, struct dp_peer *peer)
#ifdef FEATURE_NAC_RSSI #ifdef FEATURE_NAC_RSSI
/** /**
* dp_rx_nac_filter(): Function to perform filtering of non-associated * dp_rx_nac_filter() - Function to perform filtering of non-associated
* clients * clients
* @pdev: DP pdev handle * @pdev: DP pdev handle
* @rx_pkt_hdr: Rx packet Header * @rx_pkt_hdr: Rx packet Header
* *
* return: dp_vdev* * Return: dp_vdev*
*/ */
static static
struct dp_vdev *dp_rx_nac_filter(struct dp_pdev *pdev, struct dp_vdev *dp_rx_nac_filter(struct dp_pdev *pdev,
@@ -1546,10 +1547,10 @@ QDF_STATUS dp_filter_neighbour_peer(struct dp_pdev *pdev,
#endif #endif
#if defined(ATH_SUPPORT_NAC_RSSI) || defined(ATH_SUPPORT_NAC) #if defined(ATH_SUPPORT_NAC_RSSI) || defined(ATH_SUPPORT_NAC)
/* /**
* dp_update_filter_neighbour_peers() - set neighbour peers(nac clients) * dp_update_filter_neighbour_peers() - set neighbour peers(nac clients)
* address for smart mesh filtering * address for smart mesh filtering
* @txrx_soc: cdp soc handle * @soc_hdl: cdp soc handle
* @vdev_id: id of virtual device object * @vdev_id: id of virtual device object
* @cmd: Add/Del command * @cmd: Add/Del command
* @macaddr: nac client mac address * @macaddr: nac client mac address
@@ -1653,7 +1654,7 @@ fail0:
} }
#endif /* ATH_SUPPORT_NAC_RSSI || ATH_SUPPORT_NAC */ #endif /* ATH_SUPPORT_NAC_RSSI || ATH_SUPPORT_NAC */
/* /**
* dp_update_mon_mac_filter() - Set/reset monitor mac filter * dp_update_mon_mac_filter() - Set/reset monitor mac filter
* @soc_hdl: cdp soc handle * @soc_hdl: cdp soc handle
* @vdev_id: id of virtual device object * @vdev_id: id of virtual device object
@@ -1703,7 +1704,7 @@ static QDF_STATUS dp_update_mon_mac_filter(struct cdp_soc_t *soc_hdl,
#ifdef ATH_SUPPORT_NAC_RSSI #ifdef ATH_SUPPORT_NAC_RSSI
/** /**
* dp_vdev_get_neighbour_rssi(): Store RSSI for configured NAC * dp_vdev_get_neighbour_rssi() - Store RSSI for configured NAC
* @soc_hdl: DP soc handle * @soc_hdl: DP soc handle
* @vdev_id: id of DP vdev handle * @vdev_id: id of DP vdev handle
* @mac_addr: neighbour mac * @mac_addr: neighbour mac
@@ -1805,14 +1806,6 @@ dp_enable_mon_reap_timer(struct cdp_soc_t *soc_hdl,
#if defined(DP_CON_MON) #if defined(DP_CON_MON)
#ifndef REMOVE_PKT_LOG #ifndef REMOVE_PKT_LOG
/**
* dp_pkt_log_init() - API to initialize packet log
* @soc_hdl: Datapath soc handle
* @pdev_id: id of data path pdev handle
* @scn: HIF context
*
* Return: none
*/
void dp_pkt_log_init(struct cdp_soc_t *soc_hdl, uint8_t pdev_id, void *scn) void dp_pkt_log_init(struct cdp_soc_t *soc_hdl, uint8_t pdev_id, void *scn)
{ {
struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl); struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl);
@@ -1911,7 +1904,7 @@ void dp_neighbour_peers_detach(struct dp_pdev *pdev)
} }
#ifdef QCA_ENHANCED_STATS_SUPPORT #ifdef QCA_ENHANCED_STATS_SUPPORT
/* /**
* dp_mon_tx_enable_enhanced_stats() - Enable enhanced Tx stats * dp_mon_tx_enable_enhanced_stats() - Enable enhanced Tx stats
* @pdev: Datapath pdev handle * @pdev: Datapath pdev handle
* *
@@ -1927,9 +1920,9 @@ static void dp_mon_tx_enable_enhanced_stats(struct dp_pdev *pdev)
mon_ops->mon_tx_enable_enhanced_stats(pdev); mon_ops->mon_tx_enable_enhanced_stats(pdev);
} }
/* /**
* dp_enable_enhanced_stats()- API to enable enhanced statistcs * dp_enable_enhanced_stats()- API to enable enhanced statistcs
* @soc_handle: DP_SOC handle * @soc: DP_SOC handle
* @pdev_id: id of DP_PDEV handle * @pdev_id: id of DP_PDEV handle
* *
* Return: QDF_STATUS * Return: QDF_STATUS
@@ -1974,7 +1967,7 @@ dp_enable_enhanced_stats(struct cdp_soc_t *soc, uint8_t pdev_id)
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
/* /**
* dp_mon_tx_disable_enhanced_stats() - Disable enhanced Tx stats * dp_mon_tx_disable_enhanced_stats() - Disable enhanced Tx stats
* @pdev: Datapath pdev handle * @pdev: Datapath pdev handle
* *
@@ -1990,12 +1983,13 @@ static void dp_mon_tx_disable_enhanced_stats(struct dp_pdev *pdev)
mon_ops->mon_tx_disable_enhanced_stats(pdev); mon_ops->mon_tx_disable_enhanced_stats(pdev);
} }
/* /**
* dp_disable_enhanced_stats()- API to disable enhanced statistcs * dp_disable_enhanced_stats()- API to disable enhanced statistcs
* *
* @param soc - the soc handle * @soc: the soc handle
* @param pdev_id - pdev_id of pdev * @pdev_id: pdev_id of pdev
* @return - QDF_STATUS *
* Return: QDF_STATUS
*/ */
static QDF_STATUS static QDF_STATUS
dp_disable_enhanced_stats(struct cdp_soc_t *soc, uint8_t pdev_id) dp_disable_enhanced_stats(struct cdp_soc_t *soc, uint8_t pdev_id)
@@ -2110,7 +2104,7 @@ dp_enable_peer_based_pktlog(struct cdp_soc_t *soc, uint8_t pdev_id,
} }
/** /**
* dp_peer_update_pkt_capture_params: Set Rx & Tx Capture flags for a peer * dp_peer_update_pkt_capture_params() - Set Rx & Tx Capture flags for a peer
* @soc: DP_SOC handle * @soc: DP_SOC handle
* @pdev_id: id of DP_PDEV handle * @pdev_id: id of DP_PDEV handle
* @is_rx_pkt_cap_enable: enable/disable Rx packet capture in monitor mode * @is_rx_pkt_cap_enable: enable/disable Rx packet capture in monitor mode
@@ -2273,8 +2267,9 @@ QDF_STATUS dp_rx_populate_cbf_hdr(struct dp_soc *soc,
#ifdef ATH_SUPPORT_EXT_STAT #ifdef ATH_SUPPORT_EXT_STAT
#ifdef WLAN_TELEMETRY_STATS_SUPPORT #ifdef WLAN_TELEMETRY_STATS_SUPPORT
/* dp_pdev_clear_link_airtime_stats- clear pdev airtime stats for current index /**
* @peer : Datapath peer * dp_pdev_clear_link_airtime_stats() - clear pdev airtime stats for given peer
* @pdev: DP PDEV handle
*/ */
static inline static inline
void dp_pdev_clear_link_airtime_stats(struct dp_pdev *pdev) void dp_pdev_clear_link_airtime_stats(struct dp_pdev *pdev)
@@ -2285,8 +2280,9 @@ void dp_pdev_clear_link_airtime_stats(struct dp_pdev *pdev)
pdev->stats.telemetry_stats.link_airtime[ac] = 0; pdev->stats.telemetry_stats.link_airtime[ac] = 0;
} }
/* dp_peer_update_telemetry_stats- update peer telemetry stats /**
* @peer : Datapath peer * dp_peer_update_telemetry_stats() - update peer telemetry stats
* @peer: Datapath peer
*/ */
static inline static inline
void dp_peer_update_telemetry_stats(struct dp_peer *peer) void dp_peer_update_telemetry_stats(struct dp_peer *peer)
@@ -2331,10 +2327,11 @@ void dp_peer_update_telemetry_stats(struct dp_peer *peer)
{ } { }
#endif #endif
/*dp_peer_cal_clients_stats_update - update peer stats on cal client timer /**
* @soc : Datapath SOC * dp_peer_cal_clients_stats_update() - update peer stats on cal client timer
* @peer : Datapath peer * @soc: Datapath SOC
* @arg : argument to iter function * @peer: Datapath peer
* @arg: argument to iter function
*/ */
#ifdef IPA_OFFLOAD #ifdef IPA_OFFLOAD
static void static void
@@ -2397,7 +2394,8 @@ dp_peer_cal_clients_stats_update(struct dp_soc *soc,
} }
#endif #endif
/*dp_iterate_update_peer_list - update peer stats on cal client timer /**
* dp_iterate_update_peer_list() - update peer stats on cal client timer
* @pdev_hdl: pdev handle * @pdev_hdl: pdev handle
*/ */
static void dp_iterate_update_peer_list(struct cdp_pdev *pdev_hdl) static void dp_iterate_update_peer_list(struct cdp_pdev *pdev_hdl)
@@ -2442,16 +2440,16 @@ void dp_set_atf_stats_enable(struct dp_pdev *pdev, bool value)
#endif #endif
#ifdef QCA_ENHANCED_STATS_SUPPORT #ifdef QCA_ENHANCED_STATS_SUPPORT
/* /**
* dp_process_ppdu_stats_tx_mgmtctrl_payload_tlv: Process * dp_process_ppdu_stats_tx_mgmtctrl_payload_tlv() - Process
* htt_ppdu_stats_tx_mgmtctrl_payload_tlv * htt_ppdu_stats_tx_mgmtctrl_payload_tlv
* @pdev: DP PDEV handle * @pdev: DP PDEV handle
* @tag_buf: buffer containing the htt_ppdu_stats_tx_mgmtctrl_payload_tlv * @tag_buf: buffer containing the htt_ppdu_stats_tx_mgmtctrl_payload_tlv
* @length: tlv_length * @ppdu_id: PPDU Id
* *
* return:QDF_STATUS_SUCCESS if nbuf has to be freed in caller * Return: QDF_STATUS_SUCCESS if nbuf has to be freed in caller
*/ */
QDF_STATUS static QDF_STATUS
dp_process_ppdu_stats_tx_mgmtctrl_payload_tlv(struct dp_pdev *pdev, dp_process_ppdu_stats_tx_mgmtctrl_payload_tlv(struct dp_pdev *pdev,
qdf_nbuf_t tag_buf, qdf_nbuf_t tag_buf,
uint32_t ppdu_id) uint32_t ppdu_id)
@@ -2515,14 +2513,6 @@ dp_process_ppdu_stats_tx_mgmtctrl_payload_tlv(struct dp_pdev *pdev,
return QDF_STATUS_E_ALREADY; return QDF_STATUS_E_ALREADY;
} }
/*
* dp_htt_get_ppdu_sniffer_ampdu_tlv_bitmap() - Get ppdu stats tlv
* bitmap for sniffer mode
* @bitmap: received bitmap
*
* Return: expected bitmap value, returns zero if doesn't match with
* either 64-bit Tx window or 256-bit window tlv bitmap
*/
int int
dp_htt_get_ppdu_sniffer_ampdu_tlv_bitmap(uint32_t bitmap) dp_htt_get_ppdu_sniffer_ampdu_tlv_bitmap(uint32_t bitmap)
{ {
@@ -2534,7 +2524,7 @@ dp_htt_get_ppdu_sniffer_ampdu_tlv_bitmap(uint32_t bitmap)
return 0; return 0;
} }
/* /**
* dp_peer_copy_delay_stats() - copy ppdu stats to peer delayed stats. * dp_peer_copy_delay_stats() - copy ppdu stats to peer delayed stats.
* @peer: Datapath peer handle * @peer: Datapath peer handle
* @ppdu: User PPDU Descriptor * @ppdu: User PPDU Descriptor
@@ -2598,7 +2588,7 @@ dp_peer_copy_delay_stats(struct dp_peer *peer,
ppdu->debug_copied = true; ppdu->debug_copied = true;
} }
/* /**
* dp_peer_copy_stats_to_bar() - copy delayed stats to ppdu stats. * dp_peer_copy_stats_to_bar() - copy delayed stats to ppdu stats.
* @peer: Datapath peer handle * @peer: Datapath peer handle
* @ppdu: PPDU Descriptor * @ppdu: PPDU Descriptor
@@ -2647,7 +2637,7 @@ dp_peer_copy_stats_to_bar(struct dp_peer *peer,
ppdu->debug_copied = true; ppdu->debug_copied = true;
} }
/* /**
* dp_tx_rate_stats_update() - Update rate per-peer statistics * dp_tx_rate_stats_update() - Update rate per-peer statistics
* @peer: Datapath peer handle * @peer: Datapath peer handle
* @ppdu: PPDU Descriptor * @ppdu: PPDU Descriptor
@@ -2755,7 +2745,7 @@ void dp_send_stats_event(struct dp_pdev *pdev, struct dp_peer *peer,
#endif #endif
#ifdef WLAN_FEATURE_11BE #ifdef WLAN_FEATURE_11BE
/* /**
* dp_get_ru_index_frm_ru_tones() - get ru index * dp_get_ru_index_frm_ru_tones() - get ru index
* @ru_tones: ru tones * @ru_tones: ru tones
* *
@@ -2822,7 +2812,7 @@ static inline enum cdp_ru_index dp_get_ru_index_frm_ru_tones(uint16_t ru_tones)
return ru_index; return ru_index;
} }
/* /**
* dp_mon_get_ru_width_from_ru_size() - get ru_width from ru_size enum * dp_mon_get_ru_width_from_ru_size() - get ru_width from ru_size enum
* @ru_size: HTT ru_size enum * @ru_size: HTT ru_size enum
* *
@@ -2951,7 +2941,7 @@ static uint32_t dp_mon_get_ru_width_from_ru_size(uint16_t ru_size)
#endif #endif
#ifdef WLAN_TELEMETRY_STATS_SUPPORT #ifdef WLAN_TELEMETRY_STATS_SUPPORT
/* /**
* dp_pdev_telemetry_stats_update() - Update pdev telemetry stats * dp_pdev_telemetry_stats_update() - Update pdev telemetry stats
* @pdev: Datapath pdev handle * @pdev: Datapath pdev handle
* @ppdu: PPDU Descriptor * @ppdu: PPDU Descriptor
@@ -2988,7 +2978,7 @@ dp_pdev_telemetry_stats_update(
{ } { }
#endif #endif
/* /**
* dp_tx_stats_update() - Update per-peer statistics * dp_tx_stats_update() - Update per-peer statistics
* @pdev: Datapath pdev handle * @pdev: Datapath pdev handle
* @peer: Datapath peer handle * @peer: Datapath peer handle
@@ -3168,14 +3158,14 @@ dp_tx_stats_update(struct dp_pdev *pdev, struct dp_peer *peer,
dp_send_stats_event(pdev, peer, ppdu->peer_id); dp_send_stats_event(pdev, peer, ppdu->peer_id);
} }
/* /**
* dp_get_ppdu_info_user_index: Find and allocate a per-user descriptor for a PPDU, * dp_get_ppdu_info_user_index() - Find and allocate a per-user
* if a new peer id arrives in a PPDU * descriptor for a PPDU, if a new peer id arrives in a PPDU
* pdev: DP pdev handle * @pdev: DP pdev handle
* @peer_id : peer unique identifier * @peer_id: peer unique identifier
* @ppdu_info: per ppdu tlv structure * @ppdu_info: per ppdu tlv structure
* *
* return:user index to be populated * Return: user index to be populated
*/ */
static uint8_t dp_get_ppdu_info_user_index(struct dp_pdev *pdev, static uint8_t dp_get_ppdu_info_user_index(struct dp_pdev *pdev,
uint16_t peer_id, uint16_t peer_id,
@@ -3208,13 +3198,13 @@ static uint8_t dp_get_ppdu_info_user_index(struct dp_pdev *pdev,
return ppdu_info->last_user - 1; return ppdu_info->last_user - 1;
} }
/* /**
* dp_process_ppdu_stats_common_tlv: Process htt_ppdu_stats_common_tlv * dp_process_ppdu_stats_common_tlv() - Process htt_ppdu_stats_common_tlv
* pdev: DP pdev handle * @pdev: DP pdev handle
* @tag_buf: buffer containing the tlv htt_ppdu_stats_common_tlv * @tag_buf: buffer containing the tlv htt_ppdu_stats_common_tlv
* @ppdu_info: per ppdu tlv structure * @ppdu_info: per ppdu tlv structure
* *
* return:void * Return: void
*/ */
static void static void
dp_process_ppdu_stats_common_tlv(struct dp_pdev *pdev, dp_process_ppdu_stats_common_tlv(struct dp_pdev *pdev,
@@ -3339,12 +3329,13 @@ dp_process_ppdu_stats_common_tlv(struct dp_pdev *pdev,
HTT_PPDU_STATS_COMMON_TLV_BSS_COLOR_ID_GET(*tag_buf); HTT_PPDU_STATS_COMMON_TLV_BSS_COLOR_ID_GET(*tag_buf);
} }
/* /**
* dp_process_ppdu_stats_user_common_tlv: Process ppdu_stats_user_common * dp_process_ppdu_stats_user_common_tlv() - Process ppdu_stats_user_common
* @pdev: DP PDEV handle
* @tag_buf: buffer containing the tlv htt_ppdu_stats_user_common_tlv * @tag_buf: buffer containing the tlv htt_ppdu_stats_user_common_tlv
* @ppdu_info: per ppdu tlv structure * @ppdu_info: per ppdu tlv structure
* *
* return:void * Return: void
*/ */
static void dp_process_ppdu_stats_user_common_tlv( static void dp_process_ppdu_stats_user_common_tlv(
struct dp_pdev *pdev, uint32_t *tag_buf, struct dp_pdev *pdev, uint32_t *tag_buf,
@@ -3456,7 +3447,7 @@ static void dp_process_ppdu_stats_user_common_tlv(
* @tag_buf: T2H message buffer carrying the user rate TLV * @tag_buf: T2H message buffer carrying the user rate TLV
* @ppdu_info: per ppdu tlv structure * @ppdu_info: per ppdu tlv structure
* *
* return:void * Return: void
*/ */
static void static void
dp_process_ppdu_stats_user_rate_tlv(struct dp_pdev *pdev, dp_process_ppdu_stats_user_rate_tlv(struct dp_pdev *pdev,
@@ -3560,14 +3551,14 @@ dp_process_ppdu_stats_user_rate_tlv(struct dp_pdev *pdev,
HTT_PPDU_STATS_USER_RATE_TLV_PUNC_PATTERN_BITMAP_GET(*tag_buf); HTT_PPDU_STATS_USER_RATE_TLV_PUNC_PATTERN_BITMAP_GET(*tag_buf);
} }
/* /**
* dp_process_ppdu_stats_enq_mpdu_bitmap_64_tlv: Process * dp_process_ppdu_stats_enq_mpdu_bitmap_64_tlv() - Process
* htt_ppdu_stats_enq_mpdu_bitmap_64_tlv * htt_ppdu_stats_enq_mpdu_bitmap_64_tlv
* pdev: DP PDEV handle * @pdev: DP PDEV handle
* @tag_buf: buffer containing the tlv htt_ppdu_stats_enq_mpdu_bitmap_64_tlv * @tag_buf: buffer containing the tlv htt_ppdu_stats_enq_mpdu_bitmap_64_tlv
* @ppdu_info: per ppdu tlv structure * @ppdu_info: per ppdu tlv structure
* *
* return:void * Return: void
*/ */
static void dp_process_ppdu_stats_enq_mpdu_bitmap_64_tlv( static void dp_process_ppdu_stats_enq_mpdu_bitmap_64_tlv(
struct dp_pdev *pdev, uint32_t *tag_buf, struct dp_pdev *pdev, uint32_t *tag_buf,
@@ -3606,14 +3597,14 @@ static void dp_process_ppdu_stats_enq_mpdu_bitmap_64_tlv(
size); size);
} }
/* /**
* dp_process_ppdu_stats_enq_mpdu_bitmap_256_tlv: Process * dp_process_ppdu_stats_enq_mpdu_bitmap_256_tlv() - Process
* htt_ppdu_stats_enq_mpdu_bitmap_256_tlv * htt_ppdu_stats_enq_mpdu_bitmap_256_tlv
* soc: DP SOC handle * @pdev: DP PDEV handle
* @tag_buf: buffer containing the tlv htt_ppdu_stats_enq_mpdu_bitmap_256_tlv * @tag_buf: buffer containing the tlv htt_ppdu_stats_enq_mpdu_bitmap_256_tlv
* @ppdu_info: per ppdu tlv structure * @ppdu_info: per ppdu tlv structure
* *
* return:void * Return: void
*/ */
static void dp_process_ppdu_stats_enq_mpdu_bitmap_256_tlv( static void dp_process_ppdu_stats_enq_mpdu_bitmap_256_tlv(
struct dp_pdev *pdev, uint32_t *tag_buf, struct dp_pdev *pdev, uint32_t *tag_buf,
@@ -3652,14 +3643,14 @@ static void dp_process_ppdu_stats_enq_mpdu_bitmap_256_tlv(
size); size);
} }
/* /**
* dp_process_ppdu_stats_user_cmpltn_common_tlv: Process * dp_process_ppdu_stats_user_cmpltn_common_tlv() - Process
* htt_ppdu_stats_user_cmpltn_common_tlv * htt_ppdu_stats_user_cmpltn_common_tlv
* soc: DP SOC handle * @pdev: DP PDEV handle
* @tag_buf: buffer containing the tlv htt_ppdu_stats_user_cmpltn_common_tlv * @tag_buf: buffer containing the tlv htt_ppdu_stats_user_cmpltn_common_tlv
* @ppdu_info: per ppdu tlv structure * @ppdu_info: per ppdu tlv structure
* *
* return:void * Return: void
*/ */
static void dp_process_ppdu_stats_user_cmpltn_common_tlv( static void dp_process_ppdu_stats_user_cmpltn_common_tlv(
struct dp_pdev *pdev, uint32_t *tag_buf, struct dp_pdev *pdev, uint32_t *tag_buf,
@@ -3781,14 +3772,14 @@ static void dp_process_ppdu_stats_user_cmpltn_common_tlv(
HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_CURRENT_RATE_PER_GET(*tag_buf); HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_CURRENT_RATE_PER_GET(*tag_buf);
} }
/* /**
* dp_process_ppdu_stats_user_compltn_ba_bitmap_64_tlv: Process * dp_process_ppdu_stats_user_compltn_ba_bitmap_64_tlv() - Process
* htt_ppdu_stats_user_compltn_ba_bitmap_64_tlv * htt_ppdu_stats_user_compltn_ba_bitmap_64_tlv
* pdev: DP PDEV handle * @pdev: DP PDEV handle
* @tag_buf: buffer containing the htt_ppdu_stats_user_compltn_ba_bitmap_64_tlv * @tag_buf: buffer containing the htt_ppdu_stats_user_compltn_ba_bitmap_64_tlv
* @ppdu_info: per ppdu tlv structure * @ppdu_info: per ppdu tlv structure
* *
* return:void * Return: void
*/ */
static void dp_process_ppdu_stats_user_compltn_ba_bitmap_64_tlv( static void dp_process_ppdu_stats_user_compltn_ba_bitmap_64_tlv(
struct dp_pdev *pdev, uint32_t *tag_buf, struct dp_pdev *pdev, uint32_t *tag_buf,
@@ -3821,14 +3812,14 @@ static void dp_process_ppdu_stats_user_compltn_ba_bitmap_64_tlv(
ppdu_user_desc->ba_size = CDP_BA_64_BIT_MAP_SIZE_DWORDS * 32; ppdu_user_desc->ba_size = CDP_BA_64_BIT_MAP_SIZE_DWORDS * 32;
} }
/* /**
* dp_process_ppdu_stats_user_compltn_ba_bitmap_256_tlv: Process * dp_process_ppdu_stats_user_compltn_ba_bitmap_256_tlv() - Process
* htt_ppdu_stats_user_compltn_ba_bitmap_256_tlv * htt_ppdu_stats_user_compltn_ba_bitmap_256_tlv
* pdev: DP PDEV handle * @pdev: DP PDEV handle
* @tag_buf: buffer containing the htt_ppdu_stats_user_compltn_ba_bitmap_256_tlv * @tag_buf: buffer containing the htt_ppdu_stats_user_compltn_ba_bitmap_256_tlv
* @ppdu_info: per ppdu tlv structure * @ppdu_info: per ppdu tlv structure
* *
* return:void * Return: void
*/ */
static void dp_process_ppdu_stats_user_compltn_ba_bitmap_256_tlv( static void dp_process_ppdu_stats_user_compltn_ba_bitmap_256_tlv(
struct dp_pdev *pdev, uint32_t *tag_buf, struct dp_pdev *pdev, uint32_t *tag_buf,
@@ -3861,14 +3852,14 @@ static void dp_process_ppdu_stats_user_compltn_ba_bitmap_256_tlv(
ppdu_user_desc->ba_size = CDP_BA_256_BIT_MAP_SIZE_DWORDS * 32; ppdu_user_desc->ba_size = CDP_BA_256_BIT_MAP_SIZE_DWORDS * 32;
} }
/* /**
* dp_process_ppdu_stats_user_compltn_ack_ba_status_tlv: Process * dp_process_ppdu_stats_user_compltn_ack_ba_status_tlv() - Process
* htt_ppdu_stats_user_compltn_ack_ba_status_tlv * htt_ppdu_stats_user_compltn_ack_ba_status_tlv
* pdev: DP PDE handle * @pdev: DP PDEV handle
* @tag_buf: buffer containing the htt_ppdu_stats_user_compltn_ack_ba_status_tlv * @tag_buf: buffer containing the htt_ppdu_stats_user_compltn_ack_ba_status_tlv
* @ppdu_info: per ppdu tlv structure * @ppdu_info: per ppdu tlv structure
* *
* return:void * Return: void
*/ */
static void dp_process_ppdu_stats_user_compltn_ack_ba_status_tlv( static void dp_process_ppdu_stats_user_compltn_ack_ba_status_tlv(
struct dp_pdev *pdev, uint32_t *tag_buf, struct dp_pdev *pdev, uint32_t *tag_buf,
@@ -3928,14 +3919,14 @@ static void dp_process_ppdu_stats_user_compltn_ack_ba_status_tlv(
} }
} }
/* /**
* dp_process_ppdu_stats_user_common_array_tlv: Process * dp_process_ppdu_stats_user_common_array_tlv() - Process
* htt_ppdu_stats_user_common_array_tlv * htt_ppdu_stats_user_common_array_tlv
* pdev: DP PDEV handle * @pdev: DP PDEV handle
* @tag_buf: buffer containing the htt_ppdu_stats_user_compltn_ack_ba_status_tlv * @tag_buf: buffer containing the htt_ppdu_stats_user_compltn_ack_ba_status_tlv
* @ppdu_info: per ppdu tlv structure * @ppdu_info: per ppdu tlv structure
* *
* return:void * Return: void
*/ */
static void dp_process_ppdu_stats_user_common_array_tlv( static void dp_process_ppdu_stats_user_common_array_tlv(
struct dp_pdev *pdev, uint32_t *tag_buf, struct dp_pdev *pdev, uint32_t *tag_buf,
@@ -3982,14 +3973,14 @@ static void dp_process_ppdu_stats_user_common_array_tlv(
HTT_PPDU_STATS_ARRAY_ITEM_TLV_TX_FAILED_MSDUS_GET(*tag_buf); HTT_PPDU_STATS_ARRAY_ITEM_TLV_TX_FAILED_MSDUS_GET(*tag_buf);
} }
/* /**
* dp_process_ppdu_stats_flush_tlv: Process * dp_process_ppdu_stats_user_compltn_flush_tlv() - Process
* htt_ppdu_stats_flush_tlv * htt_ppdu_stats_flush_tlv
* @pdev: DP PDEV handle * @pdev: DP PDEV handle
* @tag_buf: buffer containing the htt_ppdu_stats_flush_tlv * @tag_buf: buffer containing the htt_ppdu_stats_flush_tlv
* @ppdu_info: per ppdu tlv structure * @ppdu_info: per ppdu tlv structure
* *
* return:void * Return: void
*/ */
static void static void
dp_process_ppdu_stats_user_compltn_flush_tlv(struct dp_pdev *pdev, dp_process_ppdu_stats_user_compltn_flush_tlv(struct dp_pdev *pdev,
@@ -4050,12 +4041,12 @@ add_ppdu_to_sched_list:
} }
/** /**
* dp_process_ppdu_stats_sch_cmd_status_tlv: Process schedule command status tlv * dp_process_ppdu_stats_sch_cmd_status_tlv() - Process schedule command status tlv
* Here we are not going to process the buffer. * Here we are not going to process the buffer.
* @pdev: DP PDEV handle * @pdev: DP PDEV handle
* @ppdu_info: per ppdu tlv structure * @ppdu_info: per ppdu tlv structure
* *
* return:void * Return: void
*/ */
static void static void
dp_process_ppdu_stats_sch_cmd_status_tlv(struct dp_pdev *pdev, dp_process_ppdu_stats_sch_cmd_status_tlv(struct dp_pdev *pdev,
@@ -4104,7 +4095,7 @@ dp_process_ppdu_stats_sch_cmd_status_tlv(struct dp_pdev *pdev,
peer = dp_peer_get_ref_by_id peer = dp_peer_get_ref_by_id
(pdev->soc, ppdu_desc->user[i].peer_id, (pdev->soc, ppdu_desc->user[i].peer_id,
DP_MOD_ID_TX_PPDU_STATS); DP_MOD_ID_TX_PPDU_STATS);
/** /*
* This check is to make sure peer is not deleted * This check is to make sure peer is not deleted
* after processing the TLVs. * after processing the TLVs.
*/ */
@@ -4121,7 +4112,7 @@ dp_process_ppdu_stats_sch_cmd_status_tlv(struct dp_pdev *pdev,
delay_ppdu = &mon_peer->delayed_ba_ppdu_stats; delay_ppdu = &mon_peer->delayed_ba_ppdu_stats;
start_tsf = ppdu_desc->ppdu_start_timestamp; start_tsf = ppdu_desc->ppdu_start_timestamp;
end_tsf = ppdu_desc->ppdu_end_timestamp; end_tsf = ppdu_desc->ppdu_end_timestamp;
/** /*
* save delayed ba user info * save delayed ba user info
*/ */
if (ppdu_desc->user[i].delayed_ba) { if (ppdu_desc->user[i].delayed_ba) {
@@ -4167,7 +4158,7 @@ dp_process_ppdu_stats_sch_cmd_status_tlv(struct dp_pdev *pdev,
(pdev->soc, (pdev->soc,
ppdu_desc->user[i].peer_id, ppdu_desc->user[i].peer_id,
DP_MOD_ID_TX_PPDU_STATS); DP_MOD_ID_TX_PPDU_STATS);
/** /*
* This check is to make sure peer is not deleted * This check is to make sure peer is not deleted
* after processing the TLVs. * after processing the TLVs.
*/ */
@@ -4214,17 +4205,16 @@ dp_process_ppdu_stats_sch_cmd_status_tlv(struct dp_pdev *pdev,
} }
/** /**
* dp_validate_fix_ppdu_tlv(): Function to validate the length of PPDU * dp_validate_fix_ppdu_tlv() - Function to validate the length of PPDU
*
* If the TLV length sent as part of PPDU TLV is less that expected size i.e
* size of corresponding data structure, pad the remaining bytes with zeros
* and continue processing the TLVs
*
* @pdev: DP pdev handle * @pdev: DP pdev handle
* @tag_buf: TLV buffer * @tag_buf: TLV buffer
* @tlv_expected_size: Expected size of Tag * @tlv_expected_size: Expected size of Tag
* @tlv_len: TLV length received from FW * @tlv_len: TLV length received from FW
* *
* If the TLV length sent as part of PPDU TLV is less that expected size i.e
* size of corresponding data structure, pad the remaining bytes with zeros
* and continue processing the TLVs
*
* Return: Pointer to updated TLV * Return: Pointer to updated TLV
*/ */
static inline uint32_t *dp_validate_fix_ppdu_tlv(struct dp_pdev *pdev, static inline uint32_t *dp_validate_fix_ppdu_tlv(struct dp_pdev *pdev,
@@ -4247,13 +4237,13 @@ static inline uint32_t *dp_validate_fix_ppdu_tlv(struct dp_pdev *pdev,
} }
/** /**
* dp_process_ppdu_tag(): Function to process the PPDU TLVs * dp_process_ppdu_tag() - Function to process the PPDU TLVs
* @pdev: DP pdev handle * @pdev: DP pdev handle
* @tag_buf: TLV buffer * @tag_buf: TLV buffer
* @tlv_len: length of tlv * @tlv_len: length of tlv
* @ppdu_info: per ppdu tlv structure * @ppdu_info: per ppdu tlv structure
* *
* return: void * Return: void
*/ */
static void dp_process_ppdu_tag(struct dp_pdev *pdev, static void dp_process_ppdu_tag(struct dp_pdev *pdev,
uint32_t *tag_buf, uint32_t *tag_buf,
@@ -4405,7 +4395,7 @@ dp_ppdu_desc_user_phy_tx_time_update(struct dp_pdev *pdev,
if (!nss_ru_width_sum) if (!nss_ru_width_sum)
nss_ru_width_sum = 1; nss_ru_width_sum = 1;
/** /*
* For SU-MIMO PPDU phy Tx time is same for the single user. * For SU-MIMO PPDU phy Tx time is same for the single user.
* For MU-MIMO phy Tx time is calculated per user as below * For MU-MIMO phy Tx time is calculated per user as below
* user phy tx time = * user phy tx time =
@@ -4473,13 +4463,6 @@ dp_tx_ctrl_stats_update(struct dp_pdev *pdev, struct dp_peer *peer,
} }
#endif /* WLAN_SUPPORT_CTRL_FRAME_STATS */ #endif /* WLAN_SUPPORT_CTRL_FRAME_STATS */
/**
* dp_ppdu_desc_user_stats_update(): Function to update TX user stats
* @pdev: DP pdev handle
* @ppdu_info: per PPDU TLV descriptor
*
* return: void
*/
void void
dp_ppdu_desc_user_stats_update(struct dp_pdev *pdev, dp_ppdu_desc_user_stats_update(struct dp_pdev *pdev,
struct ppdu_info *ppdu_info) struct ppdu_info *ppdu_info)
@@ -4524,7 +4507,7 @@ dp_ppdu_desc_user_stats_update(struct dp_pdev *pdev,
peer = dp_peer_get_ref_by_id(pdev->soc, peer = dp_peer_get_ref_by_id(pdev->soc,
ppdu_desc->user[i].peer_id, ppdu_desc->user[i].peer_id,
DP_MOD_ID_TX_PPDU_STATS); DP_MOD_ID_TX_PPDU_STATS);
/** /*
* This check is to make sure peer is not deleted * This check is to make sure peer is not deleted
* after processing the TLVs. * after processing the TLVs.
*/ */
@@ -4559,7 +4542,7 @@ dp_ppdu_desc_user_stats_update(struct dp_pdev *pdev,
continue; continue;
} }
/** /*
* Update tx stats for data frames having Qos as well as * Update tx stats for data frames having Qos as well as
* non-Qos data tid * non-Qos data tid
*/ */
@@ -4582,7 +4565,7 @@ dp_ppdu_desc_user_stats_update(struct dp_pdev *pdev,
} }
#if !defined(WLAN_TX_PKT_CAPTURE_ENH) || defined(QCA_MONITOR_2_0_SUPPORT) #if !defined(WLAN_TX_PKT_CAPTURE_ENH) || defined(QCA_MONITOR_2_0_SUPPORT)
/* /**
* dp_tx_ppdu_desc_notify() - Notify to upper layer about PPDU via WDI * dp_tx_ppdu_desc_notify() - Notify to upper layer about PPDU via WDI
* *
* @pdev: Datapath pdev handle * @pdev: Datapath pdev handle
@@ -4682,9 +4665,8 @@ void dp_ppdu_desc_deliver(struct dp_pdev *pdev,
} }
#endif #endif
/* /**
* dp_tx_ppdu_desc_deliver() - Deliver PPDU desc to upper layer * dp_tx_ppdu_desc_deliver() - Deliver PPDU desc to upper layer
*
* @pdev: Datapath pdev handle * @pdev: Datapath pdev handle
* @ppdu_info: per PPDU TLV descriptor * @ppdu_info: per PPDU TLV descriptor
* *
@@ -4708,7 +4690,7 @@ static void dp_tx_ppdu_desc_deliver(struct dp_pdev *pdev,
} }
/** /**
* dp_get_ppdu_desc(): Function to allocate new PPDU status * dp_get_ppdu_desc() - Function to allocate new PPDU status
* desc for new ppdu id * desc for new ppdu id
* @pdev: DP pdev handle * @pdev: DP pdev handle
* @ppdu_id: PPDU unique identifier * @ppdu_id: PPDU unique identifier
@@ -4716,7 +4698,7 @@ static void dp_tx_ppdu_desc_deliver(struct dp_pdev *pdev,
* @tsf_l32: timestamp received along with ppdu stats indication header * @tsf_l32: timestamp received along with ppdu stats indication header
* @max_users: Maximum user for that particular ppdu * @max_users: Maximum user for that particular ppdu
* *
* return: ppdu_info per ppdu tlv structure * Return: ppdu_info per ppdu tlv structure
*/ */
static static
struct ppdu_info *dp_get_ppdu_desc(struct dp_pdev *pdev, uint32_t ppdu_id, struct ppdu_info *dp_get_ppdu_desc(struct dp_pdev *pdev, uint32_t ppdu_id,
@@ -4810,7 +4792,7 @@ struct ppdu_info *dp_get_ppdu_desc(struct dp_pdev *pdev, uint32_t ppdu_id,
if (ppdu_info) { if (ppdu_info) {
if (ppdu_info->tlv_bitmap & (1 << tlv_type)) { if (ppdu_info->tlv_bitmap & (1 << tlv_type)) {
/** /*
* if we get tlv_type that is already been processed * if we get tlv_type that is already been processed
* for ppdu, that means we got a new ppdu with same * for ppdu, that means we got a new ppdu with same
* ppdu id. Hence Flush the older ppdu * ppdu id. Hence Flush the older ppdu
@@ -4825,7 +4807,7 @@ struct ppdu_info *dp_get_ppdu_desc(struct dp_pdev *pdev, uint32_t ppdu_id,
ppdu_desc = (struct cdp_tx_completion_ppdu *) ppdu_desc = (struct cdp_tx_completion_ppdu *)
qdf_nbuf_data(ppdu_info->nbuf); qdf_nbuf_data(ppdu_info->nbuf);
/** /*
* apart from ACK BA STATUS TLV rest all comes in order * apart from ACK BA STATUS TLV rest all comes in order
* so if tlv type not ACK BA STATUS TLV we can deliver * so if tlv type not ACK BA STATUS TLV we can deliver
* ppdu_info * ppdu_info
@@ -4844,7 +4826,7 @@ struct ppdu_info *dp_get_ppdu_desc(struct dp_pdev *pdev, uint32_t ppdu_id,
} }
} }
/** /*
* Flush the head ppdu descriptor if ppdu desc list reaches max * Flush the head ppdu descriptor if ppdu desc list reaches max
* threshold * threshold
*/ */
@@ -4891,7 +4873,7 @@ struct ppdu_info *dp_get_ppdu_desc(struct dp_pdev *pdev, uint32_t ppdu_id,
ppdu_info->ppdu_desc->max_users = max_users; ppdu_info->ppdu_desc->max_users = max_users;
ppdu_info->tsf_l32 = tsf_l32; ppdu_info->tsf_l32 = tsf_l32;
/** /*
* No lock is needed because all PPDU TLVs are processed in * No lock is needed because all PPDU TLVs are processed in
* same context and this list is updated in same context * same context and this list is updated in same context
*/ */
@@ -4902,11 +4884,11 @@ struct ppdu_info *dp_get_ppdu_desc(struct dp_pdev *pdev, uint32_t ppdu_id,
} }
/** /**
* dp_htt_process_tlv(): Function to process each PPDU TLVs * dp_htt_process_tlv() - Function to process each PPDU TLVs
* @pdev: DP pdev handle * @pdev: DP pdev handle
* @htt_t2h_msg: HTT target to host message * @htt_t2h_msg: HTT target to host message
* *
* return: ppdu_info per ppdu tlv structure * Return: ppdu_info per ppdu tlv structure
*/ */
static struct ppdu_info *dp_htt_process_tlv(struct dp_pdev *pdev, static struct ppdu_info *dp_htt_process_tlv(struct dp_pdev *pdev,
qdf_nbuf_t htt_t2h_msg) qdf_nbuf_t htt_t2h_msg)
@@ -4945,7 +4927,7 @@ static struct ppdu_info *dp_htt_process_tlv(struct dp_pdev *pdev,
tlv_length += HTT_TLV_HDR_LEN; tlv_length += HTT_TLV_HDR_LEN;
/** /*
* Not allocating separate ppdu descriptor for MGMT Payload * Not allocating separate ppdu descriptor for MGMT Payload
* TLV as this is sent as separate WDI indication and it * TLV as this is sent as separate WDI indication and it
* doesn't contain any ppdu information * doesn't contain any ppdu information
@@ -4984,7 +4966,7 @@ static struct ppdu_info *dp_htt_process_tlv(struct dp_pdev *pdev,
dp_process_ppdu_tag(pdev, msg_word, tlv_length, ppdu_info); dp_process_ppdu_tag(pdev, msg_word, tlv_length, ppdu_info);
/** /*
* Increment pdev level tlv count to monitor * Increment pdev level tlv count to monitor
* missing TLVs * missing TLVs
*/ */
@@ -5050,7 +5032,7 @@ static struct ppdu_info *dp_htt_process_tlv(struct dp_pdev *pdev,
return NULL; return NULL;
} }
/** /*
* Once all the TLVs for a given PPDU has been processed, * Once all the TLVs for a given PPDU has been processed,
* return PPDU status to be delivered to higher layer. * return PPDU status to be delivered to higher layer.
* tlv_bitmap_expected can't be available for different frame type. * tlv_bitmap_expected can't be available for different frame type.
@@ -5100,7 +5082,7 @@ static bool dp_tx_ppdu_stats_feat_enable_check(struct dp_pdev *pdev)
* @pdev_id: pdev id * @pdev_id: pdev id
* @htt_t2h_msg: HTT message nbuf * @htt_t2h_msg: HTT message nbuf
* *
* return:void * Return: void
*/ */
static bool dp_txrx_ppdu_stats_handler(struct dp_soc *soc, static bool dp_txrx_ppdu_stats_handler(struct dp_soc *soc,
uint8_t pdev_id, qdf_nbuf_t htt_t2h_msg) uint8_t pdev_id, qdf_nbuf_t htt_t2h_msg)
@@ -5156,14 +5138,6 @@ static bool dp_txrx_ppdu_stats_handler(struct dp_soc *soc,
#if defined(WDI_EVENT_ENABLE) &&\ #if defined(WDI_EVENT_ENABLE) &&\
(defined(QCA_ENHANCED_STATS_SUPPORT) || !defined(REMOVE_PKT_LOG)) (defined(QCA_ENHANCED_STATS_SUPPORT) || !defined(REMOVE_PKT_LOG))
/*
* dp_ppdu_stats_ind_handler() - PPDU stats msg handler
* @htt_soc: HTT SOC handle
* @msg_word: Pointer to payload
* @htt_t2h_msg: HTT msg nbuf
*
* Return: True if buffer should be freed by caller.
*/
bool bool
dp_ppdu_stats_ind_handler(struct htt_soc *soc, dp_ppdu_stats_ind_handler(struct htt_soc *soc,
uint32_t *msg_word, uint32_t *msg_word,
@@ -6156,9 +6130,13 @@ void dp_mon_ppdu_stats_handler_deregister(struct dp_mon_soc *mon_soc)
#endif #endif
#ifdef QCA_RSSI_DB2DBM #ifdef QCA_RSSI_DB2DBM
/* /**
* dp_mon_compute_min_nf() - calculate the min nf value in the * dp_mon_compute_min_nf() - calculate the min nf value in the
* active chains 20MHZ subbands. * active chains 20 MHz subbands.
* @conv_params: cdp_rssi_dbm_conv_param_dp structure value
* @min_nf: location to store min NF value
* @chain_idx: active chain index in nfHwdbm array
*
* computation: Need to calculate nfInDbm[][] to A_MIN(nfHwDbm[][]) * computation: Need to calculate nfInDbm[][] to A_MIN(nfHwDbm[][])
* considering row index as active chains and column * considering row index as active chains and column
* index as 20MHZ subbands per chain. * index as 20MHZ subbands per chain.
@@ -6166,9 +6144,6 @@ void dp_mon_ppdu_stats_handler_deregister(struct dp_mon_soc *mon_soc)
* BandWidth = 40MHZ (40MHZ includes two 20MHZ subbands so need to * BandWidth = 40MHZ (40MHZ includes two 20MHZ subbands so need to
* consider 0,1 index calculate min_nf value) * consider 0,1 index calculate min_nf value)
* *
*@conv_params: cdp_rssi_dbm_conv_param_dp structure value
*@chain_idx: active chain index in nfHwdbm array
*
* Return: QDF_STATUS_SUCCESS if value set successfully * Return: QDF_STATUS_SUCCESS if value set successfully
* QDF_STATUS_E_INVAL false if error * QDF_STATUS_E_INVAL false if error
*/ */
@@ -6218,11 +6193,11 @@ dp_mon_compute_min_nf(struct cdp_rssi_dbm_conv_param_dp *conv_params,
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
/* /**
* dp_mon_pdev_params_rssi_dbm_conv() --> to set rssi in dbm conversion * dp_mon_pdev_params_rssi_dbm_conv() - to set rssi in dbm conversion
* params into monitor pdev. * params into monitor pdev.
*@cdp_soc: dp soc handle. * @cdp_soc: dp soc handle.
*@params: cdp_rssi_db2dbm_param_dp structure value. * @params: cdp_rssi_db2dbm_param_dp structure value.
* *
* Return: QDF_STATUS_SUCCESS if value set successfully * Return: QDF_STATUS_SUCCESS if value set successfully
* QDF_STATUS_E_INVAL false if error * QDF_STATUS_E_INVAL false if error

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
/* /*
* Copyright (c) 2020-2021 The Linux Foundation. All rights reserved. * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
* *
* Permission to use, copy, modify, and/or distribute this software for * Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the * any purpose with or without fee is hereby granted, provided that the
@@ -23,7 +23,7 @@
#include <dp_mon_filter.h> #include <dp_mon_filter.h>
#include <dp_mon.h> #include <dp_mon.h>
/** /*
* dp_mon_filter_mode_type_to_str * dp_mon_filter_mode_type_to_str
* Monitor Filter mode to string * Monitor Filter mode to string
*/ */
@@ -135,13 +135,7 @@ dp_mon_set_fp_phy_err_filter(struct htt_rx_ring_tlv_filter *tlv_filter,
{ {
} }
#endif #endif
/**
* dp_mon_filter_h2t_setup() - Setup the filter for the Target setup
* @soc: DP soc handle
* @pdev: DP pdev handle
* @srng_type: The srng type for which filter will be set
* @tlv_filter: tlv filter
*/
void dp_mon_filter_h2t_setup(struct dp_soc *soc, struct dp_pdev *pdev, void dp_mon_filter_h2t_setup(struct dp_soc *soc, struct dp_pdev *pdev,
enum dp_mon_filter_srng_type srng_type, enum dp_mon_filter_srng_type srng_type,
struct dp_mon_filter *filter) struct dp_mon_filter *filter)
@@ -733,11 +727,6 @@ void dp_mon_filter_set_cbf_cmn(struct dp_pdev *pdev,
filter->tlv_filter.enable_mo = 0; filter->tlv_filter.enable_mo = 0;
} }
/**
* dp_mon_filter_dealloc() - Deallocate the filter objects to be stored in
* the radio object.
* @pdev: DP pdev handle
*/
void dp_mon_filter_dealloc(struct dp_mon_pdev *mon_pdev) void dp_mon_filter_dealloc(struct dp_mon_pdev *mon_pdev)
{ {
enum dp_mon_filter_mode mode; enum dp_mon_filter_mode mode;
@@ -774,11 +763,6 @@ void dp_mon_filter_dealloc(struct dp_mon_pdev *mon_pdev)
mon_pdev->filter = NULL; mon_pdev->filter = NULL;
} }
/**
* dp_mon_filter_alloc() - Allocate the filter objects to be stored in
* the radio object.
* @mon_pdev: Monitor pdev handle
*/
struct dp_mon_filter **dp_mon_filter_alloc(struct dp_mon_pdev *mon_pdev) struct dp_mon_filter **dp_mon_filter_alloc(struct dp_mon_pdev *mon_pdev)
{ {
struct dp_mon_filter **mon_filter = NULL; struct dp_mon_filter **mon_filter = NULL;

View File

@@ -1,6 +1,6 @@
/* /*
* Copyright (c) 2020-2021 The Linux Foundation. All rights reserved. * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
* *
* Permission to use, copy, modify, and/or distribute this software for * Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the * any purpose with or without fee is hereby granted, provided that the
@@ -20,7 +20,7 @@
#ifndef _DP_MON_FILTER_H_ #ifndef _DP_MON_FILTER_H_
#define _DP_MON_FILTER_H_ #define _DP_MON_FILTER_H_
/** /*
* Accessor Macros to access the software * Accessor Macros to access the software
* defined HTT filter htt_rx_ring_tlv_filter. * defined HTT filter htt_rx_ring_tlv_filter.
*/ */
@@ -96,7 +96,9 @@ struct dp_mon_filter {
struct htt_rx_ring_tlv_filter tlv_filter; struct htt_rx_ring_tlv_filter tlv_filter;
}; };
/** /*
* NB: intentionally not using kernel-doc comment because the kernel-doc
* script does not handle the complex conditional compilation
* enum dp_mon_filter_mode - Different modes for SRNG filters * enum dp_mon_filter_mode - Different modes for SRNG filters
* @DP_MON_FILTER_ENHACHED_STATS_MODE: PPDU enhanced stats mode * @DP_MON_FILTER_ENHACHED_STATS_MODE: PPDU enhanced stats mode
* @DP_MON_FILTER_SMART_MONITOR_MODE: Smart monitor mode * @DP_MON_FILTER_SMART_MONITOR_MODE: Smart monitor mode
@@ -107,7 +109,9 @@ struct dp_mon_filter {
* @DP_MON_FILTER_PKT_LOG_LITE_MODE: Packet log lite mode * @DP_MON_FILTER_PKT_LOG_LITE_MODE: Packet log lite mode
* @DP_MON_FILTER_PKT_LOG_CBF_MODE: Packet log cbf mode * @DP_MON_FILTER_PKT_LOG_CBF_MODE: Packet log cbf mode
* @DP_MON_FILTER_PKT_LOG_HYBRID_MODE: Packet log hybrid mode * @DP_MON_FILTER_PKT_LOG_HYBRID_MODE: Packet log hybrid mode
* @DP_MON_FILTER_RX_UNDECODED_METADATA_CAPTURE_MODE: Undecoded frame capture * @DP_MON_FILTER_UNDECODED_METADATA_CAPTURE_MODE: Undecoded frame capture
* @DP_MON_FILTER_LITE_MON_MODE:
* @DP_MON_FILTER_MAX_MODE: max filter mode
*/ */
enum dp_mon_filter_mode { enum dp_mon_filter_mode {
#ifdef QCA_ENHANCED_STATS_SUPPORT #ifdef QCA_ENHANCED_STATS_SUPPORT
@@ -163,8 +167,8 @@ enum dp_mon_filter_srng_type {
/** /**
* enum dp_mon_filter_action - Action for storing the filters * enum dp_mon_filter_action - Action for storing the filters
* into the radio structure. * into the radio structure.
* @DP_MON_FILTER_CLEAR - Clears the filter for a mode * @DP_MON_FILTER_CLEAR: Clears the filter for a mode
* @DP_MON_FILTER_SET - Set the filtes for a mode * @DP_MON_FILTER_SET: Set the filtes for a mode
*/ */
enum dp_mon_filter_action { enum dp_mon_filter_action {
DP_MON_FILTER_CLEAR, DP_MON_FILTER_CLEAR,
@@ -396,9 +400,9 @@ struct dp_mon_filter **dp_mon_filter_alloc(struct dp_mon_pdev *mon_pdev);
/** /**
* dp_mon_filter_show_filter() - Show the set filters * dp_mon_filter_show_filter() - Show the set filters
* @pdev: DP pdev handle * @mon_pdev: DP pdev handle
* @mode: The filter modes * @mode: The filter modes
* @tlv_filter: tlv filter * @filter: tlv filter
*/ */
void dp_mon_filter_show_filter(struct dp_mon_pdev *mon_pdev, void dp_mon_filter_show_filter(struct dp_mon_pdev *mon_pdev,
enum dp_mon_filter_mode mode, enum dp_mon_filter_mode mode,
@@ -430,7 +434,7 @@ dp_mon_filter_reset_mon_srng(struct dp_soc *soc, struct dp_pdev *pdev,
/** /**
* dp_mon_filter_set_mon_cmn() - Setp the common mon filters * dp_mon_filter_set_mon_cmn() - Setp the common mon filters
* @pdev: DP pdev handle * @mon_pdev: DP pdev handle
* @filter: DP mon filter * @filter: DP mon filter
* *
* Return: QDF_STATUS * Return: QDF_STATUS
@@ -440,7 +444,7 @@ void dp_mon_filter_set_mon_cmn(struct dp_mon_pdev *mon_pdev,
/** /**
* dp_mon_filter_set_status_cmn() - Setp the common status filters * dp_mon_filter_set_status_cmn() - Setp the common status filters
* @pdev: DP pdev handle * @mon_pdev: DP pdev handle
* @filter: Dp mon filters * @filter: Dp mon filters
* *
* Return: QDF_STATUS * Return: QDF_STATUS
@@ -488,7 +492,7 @@ QDF_STATUS dp_tx_mon_filter_update(struct dp_pdev *pdev);
/** /**
* dp_mon_filter_dealloc() - Deallocate the filter objects to be stored in * dp_mon_filter_dealloc() - Deallocate the filter objects to be stored in
* the radio object. * the radio object.
* @pdev: DP pdev handle * @mon_pdev: DP pdev handle
*/ */
void dp_mon_filter_dealloc(struct dp_mon_pdev *mon_pdev); void dp_mon_filter_dealloc(struct dp_mon_pdev *mon_pdev);
@@ -499,8 +503,8 @@ void dp_mon_filter_dealloc(struct dp_mon_pdev *mon_pdev);
*/ */
struct dp_mon_filter **dp_mon_filter_alloc(struct dp_mon_pdev *mon_pdev); struct dp_mon_filter **dp_mon_filter_alloc(struct dp_mon_pdev *mon_pdev);
/* /**
* dp_mon_filter_h2t_setup () - Setup filter * dp_mon_filter_h2t_setup() - Setup filter
* @soc: Dp soc handle * @soc: Dp soc handle
* @pdev: pdev handle * @pdev: pdev handle
* @srng_type: srng type * @srng_type: srng type
@@ -511,7 +515,7 @@ void dp_mon_filter_h2t_setup(struct dp_soc *soc, struct dp_pdev *pdev,
struct dp_mon_filter *filter); struct dp_mon_filter *filter);
/** /**
* dp_mon_ht2_rx_ring_cfg () - Configure filter to HW * dp_mon_ht2_rx_ring_cfg() - Configure filter to HW
* @soc: Dp soc handle * @soc: Dp soc handle
* @pdev: Dp pdev handle * @pdev: Dp pdev handle
* @srng_type: SRNG type * @srng_type: SRNG type

View File

@@ -1,6 +1,6 @@
/* /*
* Copyright (c) 2021 The Linux Foundation. All rights reserved. * Copyright (c) 2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
* *
* Permission to use, copy, modify, and/or distribute this software for * Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the * any purpose with or without fee is hereby granted, provided that the
@@ -250,6 +250,7 @@ dp_rx_populate_cfr_non_assoc_sta(struct dp_pdev *pdev,
/** /**
* dp_bb_captured_chan_status() - Get the bb_captured_channel status * dp_bb_captured_chan_status() - Get the bb_captured_channel status
* @pdev: pdev ctx
* @ppdu_info: structure for rx ppdu ring * @ppdu_info: structure for rx ppdu ring
* *
* Return: Success/ Failure * Return: Success/ Failure
@@ -284,7 +285,7 @@ dp_bb_captured_chan_status(struct dp_pdev *pdev,
* index in the rssi_chain[chain][bw] array * index in the rssi_chain[chain][bw] array
* *
* @chain: BB chain index * @chain: BB chain index
* @pdev: pdev structure * @mon_pdev: pdev structure
* *
* Return: return RF chain index * Return: return RF chain index
* *
@@ -662,10 +663,10 @@ end:
} }
/** /**
* dp_rx_stats_update() - Update per-peer statistics * dp_rx_rate_stats_update() - Update per-peer rate statistics
* @soc: Datapath SOC handle
* @peer: Datapath peer handle * @peer: Datapath peer handle
* @ppdu: PPDU Descriptor * @ppdu: PPDU Descriptor
* @user: user index
* *
* Return: None * Return: None
*/ */

View File

@@ -1,6 +1,6 @@
/* /*
* Copyright (c) 2016-2021 The Linux Foundation. All rights reserved. * Copyright (c) 2016-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
* *
* Permission to use, copy, modify, and/or distribute this software for * Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the * any purpose with or without fee is hereby granted, provided that the
@@ -69,11 +69,11 @@
/** /**
* enum dp_mon_reap_status - monitor status ring ppdu status * enum dp_mon_reap_status - monitor status ring ppdu status
* *
* @DP_MON_STATUS_NO_DMA - DMA not done for status ring entry * @DP_MON_STATUS_NO_DMA: DMA not done for status ring entry
* @DP_MON_STATUS_MATCH - status and dest ppdu id matches * @DP_MON_STATUS_MATCH: status and dest ppdu id matches
* @DP_MON_STATUS_LAG - status ppdu id is lagging * @DP_MON_STATUS_LAG: status ppdu id is lagging
* @DP_MON_STATUS_LEAD - status ppdu id is leading * @DP_MON_STATUS_LEAD: status ppdu id is leading
* @DP_MON_STATUS_REPLENISH - status ring entry is NULL * @DP_MON_STATUS_REPLENISH: status ring entry is NULL
*/ */
enum dp_mon_reap_status { enum dp_mon_reap_status {
DP_MON_STATUS_NO_DMA, DP_MON_STATUS_NO_DMA,
@@ -83,7 +83,7 @@ enum dp_mon_reap_status {
DP_MON_STATUS_REPLENISH DP_MON_STATUS_REPLENISH
}; };
/* /**
* dp_rx_mon_status_process() - Process monitor status ring and * dp_rx_mon_status_process() - Process monitor status ring and
* TLV in status ring. * TLV in status ring.
* *
@@ -91,20 +91,20 @@ enum dp_mon_reap_status {
* @int_ctx: interrupt context * @int_ctx: interrupt context
* @mac_id: mac_id which is one of 3 mac_ids * @mac_id: mac_id which is one of 3 mac_ids
* @quota: No. of ring entry that can be serviced in one shot. * @quota: No. of ring entry that can be serviced in one shot.
*
* Return: uint32_t: No. of ring entry that is processed. * Return: uint32_t: No. of ring entry that is processed.
*/ */
uint32_t uint32_t
dp_rx_mon_status_process(struct dp_soc *soc, struct dp_intr *int_ctx, dp_rx_mon_status_process(struct dp_soc *soc, struct dp_intr *int_ctx,
uint32_t mac_id, uint32_t quota); uint32_t mac_id, uint32_t quota);
/* /**
* dp_rx_populate_cbf_hdr - Send CBF frame with htt header * dp_rx_populate_cbf_hdr - Send CBF frame with htt header
* @soc: Datapath soc handle * @soc: Datapath soc handle
* @mac_id: Datapath mac id * @mac_id: Datapath mac id
* @event: WDI event * @event: WDI event
* @mpdu: mpdu buffer * @data: mpdu buffer
* @msdu_timesstamp: time stamp * @msdu_timestamp: time stamp
* *
* Return: QDF_STATUS * Return: QDF_STATUS
*/ */
@@ -113,7 +113,7 @@ QDF_STATUS dp_rx_populate_cbf_hdr(struct dp_soc *soc,
qdf_nbuf_t data, uint32_t msdu_timestamp); qdf_nbuf_t data, uint32_t msdu_timestamp);
/** /**
* dp_rx_mon_handle_status_buf_done () - Handle DMA not done case for * dp_rx_mon_handle_status_buf_done() - Handle DMA not done case for
* monitor status ring * monitor status ring
* *
* @pdev: DP pdev handle * @pdev: DP pdev handle
@@ -150,7 +150,7 @@ void dp_full_mon_attach(struct dp_pdev *pdev);
void dp_full_mon_detach(struct dp_pdev *pdev); void dp_full_mon_detach(struct dp_pdev *pdev);
/** /**
* dp_rx_mon_process ()- API to process monitor destination ring for * dp_rx_mon_process()- API to process monitor destination ring for
* full monitor mode * full monitor mode
* *
* @soc: dp soc handle * @soc: dp soc handle
@@ -216,7 +216,8 @@ uint32_t dp_mon_process(struct dp_soc *soc, struct dp_intr *int_ctx,
QDF_STATUS dp_rx_mon_deliver(struct dp_soc *soc, uint32_t mac_id, QDF_STATUS dp_rx_mon_deliver(struct dp_soc *soc, uint32_t mac_id,
qdf_nbuf_t head_msdu, qdf_nbuf_t tail_msdu); qdf_nbuf_t head_msdu, qdf_nbuf_t tail_msdu);
/*
/**
* dp_rx_mon_deliver_non_std() - deliver frames for non standard path * dp_rx_mon_deliver_non_std() - deliver frames for non standard path
* @soc: core txrx main context * @soc: core txrx main context
* @mac_id: MAC ID * @mac_id: MAC ID
@@ -229,7 +230,7 @@ QDF_STATUS dp_rx_mon_deliver(struct dp_soc *soc, uint32_t mac_id,
QDF_STATUS dp_rx_mon_deliver_non_std(struct dp_soc *soc, uint32_t mac_id); QDF_STATUS dp_rx_mon_deliver_non_std(struct dp_soc *soc, uint32_t mac_id);
#ifndef REMOVE_MON_DBG_STATS #ifndef REMOVE_MON_DBG_STATS
/* /**
* dp_rx_mon_update_dbg_ppdu_stats() - Update status ring TLV count * dp_rx_mon_update_dbg_ppdu_stats() - Update status ring TLV count
* @ppdu_info: HAL RX PPDU info retrieved from status ring TLV * @ppdu_info: HAL RX PPDU info retrieved from status ring TLV
* @rx_mon_stats: monitor mode status/destination ring PPDU and MPDU count * @rx_mon_stats: monitor mode status/destination ring PPDU and MPDU count
@@ -268,7 +269,7 @@ dp_rx_mon_update_dbg_ppdu_stats(struct hal_rx_ppdu_info *ppdu_info,
} }
} }
/* /**
* dp_rx_mon_init_dbg_ppdu_stats() - initialization for monitor mode stats * dp_rx_mon_init_dbg_ppdu_stats() - initialization for monitor mode stats
* @ppdu_info: HAL RX PPDU info retrieved from status ring TLV * @ppdu_info: HAL RX PPDU info retrieved from status ring TLV
* @rx_mon_stats: monitor mode status/destination ring PPDU and MPDU count * @rx_mon_stats: monitor mode status/destination ring PPDU and MPDU count
@@ -305,7 +306,7 @@ dp_rx_populate_rx_rssi_chain(struct hal_rx_ppdu_info *ppdu_info,
struct cdp_rx_indication_ppdu *cdp_rx_ppdu, struct cdp_rx_indication_ppdu *cdp_rx_ppdu,
struct dp_pdev *pdev); struct dp_pdev *pdev);
/* /**
* dp_rx_populate_su_evm_details() - Populate su evm info * dp_rx_populate_su_evm_details() - Populate su evm info
* @ppdu_info: ppdu info structure from ppdu ring * @ppdu_info: ppdu info structure from ppdu ring
* @cdp_rx_ppdu: rx ppdu indication structure * @cdp_rx_ppdu: rx ppdu indication structure
@@ -442,6 +443,7 @@ dp_rx_mcopy_handle_last_mpdu(struct dp_soc *soc, struct dp_pdev *pdev,
/** /**
* dp_rx_mcopy_process_ppdu_info() - update mcopy ppdu info * dp_rx_mcopy_process_ppdu_info() - update mcopy ppdu info
* @pdev: pdev structure
* @ppdu_info: structure for rx ppdu ring * @ppdu_info: structure for rx ppdu ring
* @tlv_status: processed TLV status * @tlv_status: processed TLV status
* *
@@ -502,7 +504,8 @@ int
dp_rx_handle_smart_mesh_mode(struct dp_soc *soc, struct dp_pdev *pdev, dp_rx_handle_smart_mesh_mode(struct dp_soc *soc, struct dp_pdev *pdev,
struct hal_rx_ppdu_info *ppdu_info, struct hal_rx_ppdu_info *ppdu_info,
qdf_nbuf_t nbuf); qdf_nbuf_t nbuf);
/*
/**
* dp_rx_nbuf_prepare() - prepare RX nbuf * dp_rx_nbuf_prepare() - prepare RX nbuf
* @soc: core txrx main context * @soc: core txrx main context
* @pdev: core txrx pdev context * @pdev: core txrx pdev context
@@ -517,7 +520,7 @@ dp_rx_nbuf_prepare(struct dp_soc *soc, struct dp_pdev *pdev);
#if defined(WLAN_CFR_ENABLE) && defined(WLAN_ENH_CFR_ENABLE) #if defined(WLAN_CFR_ENABLE) && defined(WLAN_ENH_CFR_ENABLE)
/* /**
* dp_rx_mon_handle_cfr_mu_info() - Gather macaddr and ast_index of peer(s) in * dp_rx_mon_handle_cfr_mu_info() - Gather macaddr and ast_index of peer(s) in
* the PPDU received, this will be used for correlation of CFR data captured * the PPDU received, this will be used for correlation of CFR data captured
* for an UL-MU-PPDU * for an UL-MU-PPDU
@@ -532,7 +535,7 @@ dp_rx_mon_handle_cfr_mu_info(struct dp_pdev *pdev,
struct hal_rx_ppdu_info *ppdu_info, struct hal_rx_ppdu_info *ppdu_info,
struct cdp_rx_indication_ppdu *cdp_rx_ppdu); struct cdp_rx_indication_ppdu *cdp_rx_ppdu);
/* /**
* dp_rx_mon_populate_cfr_ppdu_info() - Populate cdp ppdu info from hal ppdu * dp_rx_mon_populate_cfr_ppdu_info() - Populate cdp ppdu info from hal ppdu
* info * info
* @pdev: pdev ctx * @pdev: pdev ctx
@@ -555,7 +558,7 @@ dp_rx_mon_populate_cfr_ppdu_info(struct dp_pdev *pdev,
bool bool
dp_cfr_rcc_mode_status(struct dp_pdev *pdev); dp_cfr_rcc_mode_status(struct dp_pdev *pdev);
/* /**
* dp_rx_mon_populate_cfr_info() - Populate cdp ppdu info from hal cfr info * dp_rx_mon_populate_cfr_info() - Populate cdp ppdu info from hal cfr info
* @pdev: pdev ctx * @pdev: pdev ctx
* @ppdu_info: ppdu info structure from ppdu ring * @ppdu_info: ppdu info structure from ppdu ring
@@ -579,7 +582,7 @@ void
dp_update_cfr_dbg_stats(struct dp_pdev *pdev, dp_update_cfr_dbg_stats(struct dp_pdev *pdev,
struct hal_rx_ppdu_info *ppdu_info); struct hal_rx_ppdu_info *ppdu_info);
/* /**
* dp_rx_handle_cfr() - Gather cfr info from hal ppdu info * dp_rx_handle_cfr() - Gather cfr info from hal ppdu info
* @soc: core txrx main context * @soc: core txrx main context
* @pdev: pdev ctx * @pdev: pdev ctx
@@ -653,7 +656,7 @@ dp_cfr_rcc_mode_status(struct dp_pdev *pdev)
} }
#endif /* WLAN_CFR_ENABLE && WLAN_ENH_CFR_ENABLE */ #endif /* WLAN_CFR_ENABLE && WLAN_ENH_CFR_ENABLE */
/* /**
* dp_rx_mon_deliver(): function to deliver packets to stack * dp_rx_mon_deliver(): function to deliver packets to stack
* @soc: DP soc * @soc: DP soc
* @mac_id: MAC ID * @mac_id: MAC ID
@@ -668,15 +671,15 @@ QDF_STATUS dp_rx_mon_deliver(struct dp_soc *soc,
qdf_nbuf_t tail_msdu); qdf_nbuf_t tail_msdu);
/** /**
* dp_rx_mon_deliver_non_std() * dp_rx_mon_deliver_non_std()
* @soc: core txrx main context * @soc: core txrx main context
* @mac_id: MAC ID * @mac_id: MAC ID
* *
* This function delivers the radio tap and dummy MSDU * This function delivers the radio tap and dummy MSDU
* into user layer application for preamble only PPDU. * into user layer application for preamble only PPDU.
* *
* Return: QDF_STATUS * Return: QDF_STATUS
*/ */
QDF_STATUS dp_rx_mon_deliver_non_std(struct dp_soc *soc, QDF_STATUS dp_rx_mon_deliver_non_std(struct dp_soc *soc,
uint32_t mac_id); uint32_t mac_id);
@@ -730,7 +733,7 @@ qdf_frag_t dp_rx_mon_get_nbuf_80211_hdr(qdf_nbuf_t nbuf)
} }
#endif #endif
/* /**
* dp_rx_mon_process_dest_pktlog(): function to log packet contents to * dp_rx_mon_process_dest_pktlog(): function to log packet contents to
* pktlog buffer and send to pktlog module * pktlog buffer and send to pktlog module
* @soc: DP soc * @soc: DP soc