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:

committed by
Madan Koyyalamudi

parent
73ff25850d
commit
f2c2770849
@@ -63,10 +63,10 @@ dp_mon_populate_ppdu_info_1_0(struct hal_rx_ppdu_info *hal_ppdu_info,
|
||||
ppdu->punc_bw = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* is_ppdu_txrx_capture_enabled() - API to check both pktlog and debug_sniffer
|
||||
* modes are enabled or not.
|
||||
* @dp_pdev: dp pdev handle.
|
||||
* @pdev: dp pdev handle.
|
||||
*
|
||||
* Return: bool
|
||||
*/
|
||||
@@ -534,7 +534,7 @@ budget_done:
|
||||
|
||||
/* MCL specific functions */
|
||||
#if defined(DP_CON_MON)
|
||||
/*
|
||||
/**
|
||||
* dp_mon_reap_timer_handler()- timer to reap monitor rings
|
||||
* reqd as we are not getting ppdu end interrupts
|
||||
* @arg: SoC Handle
|
||||
@@ -816,8 +816,8 @@ QDF_STATUS dp_mon_htt_srng_setup_1_0(struct dp_soc *soc,
|
||||
/* MCL specific functions */
|
||||
#if defined(DP_CON_MON)
|
||||
|
||||
/*
|
||||
* dp_service_mon_rings()- service monitor rings
|
||||
/**
|
||||
* dp_service_mon_rings() - service monitor rings
|
||||
* @soc: soc dp handle
|
||||
* @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
|
||||
|
||||
/*
|
||||
* 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
|
||||
* @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_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
|
||||
* @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);
|
||||
|
||||
/**
|
||||
/*
|
||||
* Deliver PPDU stats only for valid (acked) data
|
||||
* frames if sniffer mode is not enabled.
|
||||
* 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
|
||||
|
||||
/**
|
||||
* 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
|
||||
*
|
||||
* @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
|
||||
*/
|
||||
void
|
||||
static void
|
||||
dp_mon_tx_stats_update_1_0(struct dp_mon_peer *mon_peer,
|
||||
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
|
||||
/**
|
||||
* 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
|
||||
* 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
|
||||
* @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
|
||||
dp_rx_mon_process(struct dp_soc *soc, struct dp_intr *int_ctx,
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* 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
|
||||
* 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
|
||||
* @arch_ops: arch ops pointer
|
||||
* @context_type: context type for which the size is needed
|
||||
*
|
||||
* Return: size in bytes for the context_type
|
||||
*/
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* 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
|
||||
* 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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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)
|
||||
{
|
||||
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 */
|
||||
|
||||
#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)
|
||||
{
|
||||
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_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)
|
||||
{
|
||||
struct dp_mon_filter filter = {0};
|
||||
@@ -373,10 +359,6 @@ void dp_mon_filter_reset_mcopy_mode_1_0(struct dp_pdev *pdev)
|
||||
#endif
|
||||
|
||||
#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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
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
|
||||
* 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)
|
||||
{
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* 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
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
@@ -19,13 +19,13 @@
|
||||
|
||||
#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
|
||||
*/
|
||||
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
|
||||
*/
|
||||
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
|
||||
|
||||
#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
|
||||
* @pdev: DP pdev handle
|
||||
*/
|
||||
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
|
||||
* @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
|
||||
/**
|
||||
* 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
|
||||
*/
|
||||
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
|
||||
*/
|
||||
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)
|
||||
/**
|
||||
* 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
|
||||
*/
|
||||
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
|
||||
*/
|
||||
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
|
||||
/**
|
||||
* 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
|
||||
*/
|
||||
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
|
||||
*/
|
||||
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
|
||||
|
||||
/**
|
||||
* 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
|
||||
*/
|
||||
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
|
||||
*/
|
||||
void dp_mon_filter_reset_mon_mode_1_0(struct dp_pdev *pdev);
|
||||
|
||||
#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
|
||||
*/
|
||||
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
|
||||
*/
|
||||
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
|
||||
* in the radio object.
|
||||
* dp_mon_filter_setup_rx_pkt_log_lite_1_0() - Setup the Rx pktlog lite mode
|
||||
* filter in the radio object.
|
||||
* @pdev: DP pdev handle
|
||||
*/
|
||||
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
|
||||
*/
|
||||
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
|
||||
* in the radio object.
|
||||
* dp_mon_filter_setup_rx_pkt_log_cbf_1_0() - Setup the Rx pktlog cbf mode
|
||||
* filter in the radio object.
|
||||
* @pdev: DP pdev handle
|
||||
*/
|
||||
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
|
||||
*/
|
||||
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
|
||||
* @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,
|
||||
struct htt_rx_ring_tlv_filter *tlv_filter);
|
||||
|
@@ -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)
|
||||
* @soc: core txrx main 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.
|
||||
*
|
||||
* 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
|
||||
* @int_ctx: interrupt context
|
||||
* @soc: core txrx main context
|
||||
* @mac_id: mac id which is one of 3 mac_ids
|
||||
* @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.
|
||||
*
|
||||
* 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
|
||||
* @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
|
||||
*/
|
||||
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
|
||||
* @rx_desc: RX descriptor
|
||||
*
|
||||
* Return: nbuf address
|
||||
*/
|
||||
#define DP_RX_MON_GET_NBUF_FROM_DESC(rx_desc) \
|
||||
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
|
||||
* @rx_desc: RX descriptor
|
||||
*
|
||||
* Return: Physical address of the buffer
|
||||
*/
|
||||
static inline
|
||||
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
|
||||
* @rx_desc: RX descriptor
|
||||
*
|
||||
* Return: true if the buffer is NULL, otherwise false
|
||||
*/
|
||||
#define DP_RX_MON_IS_BUFFER_ADDR_NULL(rx_desc) \
|
||||
(!(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_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,
|
||||
* 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
|
||||
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
|
||||
* @msdu: MSDU
|
||||
* @size: MSDU 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
|
||||
* @pdev: core physical device context
|
||||
* @hal_buf_info: structure holding the buffer info
|
||||
* mac_id: mac number
|
||||
* @buf_info: structure holding the buffer info
|
||||
* @mac_id: mac number
|
||||
*
|
||||
* 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
|
||||
* @pdev: core physical device context
|
||||
* @p_last_buf_addr_info: MPDU Link descriptor
|
||||
* mac_id: mac number
|
||||
* @mac_id: mac number
|
||||
* @bm_action:
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* 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
|
||||
* 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);
|
||||
|
||||
/**
|
||||
* 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
|
||||
* @mon_status_srng: Monitor status SRNG
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* 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
|
||||
* 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;
|
||||
};
|
||||
|
||||
/**
|
||||
/*
|
||||
* 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
|
||||
* @mon_pdev: monitor pdev structure
|
||||
* @filter_be: filters sent to fw
|
||||
@@ -217,7 +219,7 @@ struct dp_mon_soc_be {
|
||||
/**
|
||||
* dp_mon_desc_pool_init() - Monitor descriptor pool init
|
||||
* @mon_desc_pool: mon desc pool
|
||||
* @pool_size
|
||||
* @pool_size: Pool size
|
||||
*
|
||||
* 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,
|
||||
uint32_t pool_size);
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_mon_desc_pool_deinit()- monitor descriptor pool deinit
|
||||
* @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);
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_mon_desc_pool_free()- monitor descriptor pool free
|
||||
* @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
|
||||
* @mon_desc_pool: mon desc pool
|
||||
* @pool_size: Pool size
|
||||
* @mon_desc_pool: mon desc pool
|
||||
*
|
||||
* Return: non-zero for failure, zero for success
|
||||
*/
|
||||
QDF_STATUS dp_mon_desc_pool_alloc(uint32_t pool_size,
|
||||
struct dp_mon_desc_pool *mon_desc_pool);
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_mon_pool_frag_unmap_and_free() - free the mon desc frag called during
|
||||
* de-initialization of wifi module.
|
||||
*
|
||||
* @soc: DP soc handle
|
||||
* @dp_soc: DP soc handle
|
||||
* @mon_desc_pool: monitor descriptor pool pointer
|
||||
*
|
||||
* 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,
|
||||
struct dp_mon_desc_pool *mon_desc_pool);
|
||||
|
||||
/*
|
||||
/**
|
||||
* 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
|
||||
* @mon_desc_pool: Pointer to free mon descriptor pool
|
||||
* @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
|
||||
* interrupt.
|
||||
* @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
|
||||
*/
|
||||
@@ -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
|
||||
* @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,
|
||||
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
|
||||
* @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,
|
||||
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);
|
||||
#endif
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_mon_desc_get() - get monitor sw descriptor
|
||||
*
|
||||
* @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
|
||||
* @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) \
|
||||
__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
|
||||
* 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);
|
||||
|
||||
/**
|
||||
* 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
|
||||
* @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) ||\
|
||||
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
|
||||
* type
|
||||
* @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)
|
||||
/**
|
||||
* 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
|
||||
*/
|
||||
@@ -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
|
||||
* @pdev: dp_mon_pdev pointer
|
||||
* @mon_pdev: dp_mon_pdev pointer
|
||||
*
|
||||
* Return: dp_mon_pdev_be pointer
|
||||
*/
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* 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
|
||||
* 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
|
||||
* @msg_word: msg word
|
||||
* @htt_tlv_filter: rx ring filter configuration
|
||||
* @tlv_filter: rx ring filter configuration
|
||||
*/
|
||||
void
|
||||
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
|
||||
* @msg_word: msg word
|
||||
* @htt_tlv_filter: rx ring filter configuration
|
||||
* @tlv_filter: rx ring filter configuration
|
||||
*/
|
||||
void
|
||||
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
|
||||
* @msg_word: msg word
|
||||
* @htt_tlv_filter: rx ring filter configuration
|
||||
* @tlv_filter: rx ring filter configuration
|
||||
*/
|
||||
void
|
||||
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
|
||||
* @msg_word: msg word
|
||||
* @htt_tlv_filter: rx ring filter configuration
|
||||
* @tlv_filter: rx ring filter configuration
|
||||
*/
|
||||
void
|
||||
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
|
||||
* @msg_word: msg word
|
||||
* @htt_tlv_filter: rx ring filter configuration
|
||||
* @tlv_filter: rx ring filter configuration
|
||||
*/
|
||||
void
|
||||
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
|
||||
* @msg_word: msg word
|
||||
* @htt_tlv_filter: rx ring filter configuration
|
||||
* @tlv_filter: rx ring filter configuration
|
||||
*/
|
||||
void
|
||||
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
|
||||
/**
|
||||
* 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
|
||||
*/
|
||||
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
|
||||
*/
|
||||
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
|
||||
|
||||
#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
|
||||
* @pdev: DP pdev handle
|
||||
*/
|
||||
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
|
||||
* @pdev: DP pdev handle
|
||||
*/
|
||||
@@ -145,32 +145,33 @@ dp_mon_filter_reset_undecoded_metadata_capture_2_0(struct dp_pdev *pdev)
|
||||
#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
|
||||
*/
|
||||
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
|
||||
*/
|
||||
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
|
||||
*/
|
||||
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
|
||||
*/
|
||||
void dp_mon_filter_reset_tx_mon_mode_2_0(struct dp_pdev *pdev);
|
||||
|
||||
#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
|
||||
*/
|
||||
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);
|
||||
|
||||
/**
|
||||
* dp_mon_filter_setup_rx_pkt_log_lite() - Setup the Rx pktlog lite mode filter
|
||||
* in the radio object.
|
||||
* dp_mon_filter_setup_rx_pkt_log_lite_2_0() - Setup the Rx pktlog lite mode
|
||||
* filter in the radio object.
|
||||
* @pdev: DP pdev handle
|
||||
*/
|
||||
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
|
||||
*/
|
||||
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
|
||||
* in the radio object.
|
||||
* dp_mon_filter_setup_rx_pkt_log_cbf_2_0() - Setup the Rx pktlog cbf mode
|
||||
* filter in the radio object.
|
||||
* @pdev: DP pdev handle
|
||||
*/
|
||||
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
|
||||
*/
|
||||
void dp_mon_filter_reset_rx_pktlog_cbf_2_0(struct dp_pdev *pdev);
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* 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
|
||||
* 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
|
||||
* @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
|
||||
* @nbuf: SKB to be freed
|
||||
*
|
||||
* @Return: void
|
||||
* Return: void
|
||||
*/
|
||||
void
|
||||
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
|
||||
* @ppdu_info: PPDU info
|
||||
*
|
||||
@@ -441,7 +441,7 @@ void dp_rx_mon_drain_wq(struct dp_pdev *pdev)
|
||||
*
|
||||
* @mon_pdev: monitor pdev
|
||||
* @mpdu: MPDU nbuf
|
||||
* @status: monitor status
|
||||
* @rx_status: monitor 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
|
||||
* @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:
|
||||
* a. Full 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
|
||||
*
|
||||
* 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
|
||||
*
|
||||
@@ -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
|
||||
* @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
|
||||
*
|
||||
@@ -1618,6 +1618,8 @@ dp_rx_mon_process_status_tlv(struct dp_pdev *pdev)
|
||||
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
|
||||
*
|
||||
@@ -1626,8 +1628,6 @@ dp_rx_mon_process_status_tlv(struct dp_pdev *pdev)
|
||||
*
|
||||
* Return: none
|
||||
*/
|
||||
#ifdef WLAN_FEATURE_11BE_MLO
|
||||
#define DP_PEER_ID_MASK 0x3FFF
|
||||
static inline
|
||||
void dp_rx_mon_update_peer_id(struct dp_pdev *pdev,
|
||||
struct hal_rx_ppdu_info *ppdu_info)
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* 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
|
||||
* 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_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_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);
|
||||
|
||||
/**
|
||||
* 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
|
||||
* @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);
|
||||
|
||||
/**
|
||||
* 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
|
||||
* @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,
|
||||
struct cdp_rx_indication_ppdu *ppdu);
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_rx_process_pktlog_be() - process pktlog
|
||||
* @soc: dp soc 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
|
||||
* @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,
|
||||
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)
|
||||
/*
|
||||
* dp_rx_mon_process_2_0 () - Process Rx monitor interrupt
|
||||
* dp_rx_mon_process_2_0() - Process Rx monitor interrupt
|
||||
*
|
||||
* @soc: DP soc handle
|
||||
* @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);
|
||||
|
||||
/**
|
||||
* dp_rx_mon_process_ppdu () - RxMON Workqueue processing API
|
||||
* dp_rx_mon_process_ppdu() - RxMON Workqueue processing API
|
||||
*
|
||||
* @context: workqueue context
|
||||
*/
|
||||
@@ -215,7 +215,7 @@ void dp_rx_mon_drain_wq(struct dp_pdev *pdev);
|
||||
* @mon_pdev: monitor pdev
|
||||
* @nbuf: SKB to be freed
|
||||
*
|
||||
* @Return: void
|
||||
* Return: void
|
||||
*/
|
||||
void
|
||||
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 */
|
||||
/**
|
||||
* 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
|
||||
* @pdev: DP pdev handle
|
||||
|
@@ -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
|
||||
* @pdev: pdev Handle
|
||||
* @ppdu_info: pointer to dp_tx_ppdu_info
|
||||
* @user_id: current user index
|
||||
* @user_idx: current user index
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
@@ -1146,7 +1146,7 @@ dp_tx_mon_update_radiotap(struct dp_pdev *pdev,
|
||||
*
|
||||
* 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_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)
|
||||
{
|
||||
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");
|
||||
}
|
||||
|
||||
/**
|
||||
* 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)
|
||||
{
|
||||
struct dp_mon_pdev *mon_pdev;
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* 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
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
@@ -24,9 +24,9 @@
|
||||
struct dp_mon_desc;
|
||||
|
||||
/**
|
||||
* dp_tx_mon_desc_list - structure to store double linked liskt
|
||||
* @tx_ppdu_info_dlist_elem: support adding to double linked list
|
||||
* @tx_ppdu_info_slist_elem: support adding to single linked list
|
||||
* struct dp_tx_mon_desc_list - structure to store descriptor linked list
|
||||
* @desc_list: descriptor list
|
||||
* @tail: descriptor list tail
|
||||
* @tx_mon_reap_cnt: tx monitor reap count
|
||||
*/
|
||||
struct dp_tx_mon_desc_list {
|
||||
@@ -35,9 +35,10 @@ struct dp_tx_mon_desc_list {
|
||||
uint32_t tx_mon_reap_cnt;
|
||||
};
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_tx_mon_buffers_alloc() - allocate tx monitor buffers
|
||||
* @soc: DP soc handle
|
||||
* @size: buffer size
|
||||
*
|
||||
* Return: QDF_STATUS_SUCCESS: Success
|
||||
* QDF_STATUS_E_FAILURE: Error
|
||||
@@ -45,7 +46,7 @@ struct dp_tx_mon_desc_list {
|
||||
QDF_STATUS
|
||||
dp_tx_mon_buffers_alloc(struct dp_soc *soc, uint32_t size);
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_tx_mon_buffers_free() - free tx monitor buffers
|
||||
* @soc: dp soc handle
|
||||
*
|
||||
@@ -53,16 +54,16 @@ dp_tx_mon_buffers_alloc(struct dp_soc *soc, uint32_t size);
|
||||
void
|
||||
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
|
||||
*
|
||||
*/
|
||||
void
|
||||
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
|
||||
*
|
||||
* Return: QDF_STATUS_SUCCESS: Success
|
||||
@@ -71,14 +72,14 @@ dp_tx_mon_buf_desc_pool_deinit(struct dp_soc *soc);
|
||||
QDF_STATUS
|
||||
dp_tx_mon_buf_desc_pool_init(struct dp_soc *soc);
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_tx_mon_buf_desc_pool_free() - free tx monitor descriptor pool
|
||||
* @soc: dp soc handle
|
||||
*
|
||||
*/
|
||||
void dp_tx_mon_buf_desc_pool_free(struct dp_soc *soc);
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_tx_mon_buf_desc_pool_alloc() - allocate tx monitor descriptor pool
|
||||
* @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
|
||||
*
|
||||
* @mon_pdev - DP_MON_PDEV handle
|
||||
* @ppdu_id - ppdu_id
|
||||
* @end_reason - monitor destination descriptor end reason
|
||||
* @mon_pdev: DP_MON_PDEV handle
|
||||
* @ppdu_id: ppdu_id
|
||||
* @end_reason: monitor destination descriptor end reason
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
@@ -130,15 +131,15 @@ dp_tx_mon_status_free_packet_buf(struct dp_pdev *pdev,
|
||||
QDF_STATUS
|
||||
dp_tx_process_pktlog_be(struct dp_soc *soc, struct dp_pdev *pdev,
|
||||
void *status_frag, uint32_t end_offset);
|
||||
/*
|
||||
/**
|
||||
* 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
|
||||
* @soc: DP_SOC handle
|
||||
* @pdev: DP_PDEV handle
|
||||
* @mon_ring_desc: descriptor status info
|
||||
* @status_frag: 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
|
||||
@@ -151,7 +152,7 @@ dp_tx_mon_process_status_tlv(struct dp_soc *soc,
|
||||
uint32_t end_offset,
|
||||
struct dp_tx_mon_desc_list *mon_desc_list_ref);
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_tx_mon_process_2_0() - tx monitor interrupt process
|
||||
* @soc: dp soc handle
|
||||
* @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,
|
||||
uint32_t mac_id, uint32_t quota);
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_tx_mon_print_ring_stat_2_0() - Print monitor ring stats
|
||||
* @pdev: dp pdev handle
|
||||
*
|
||||
@@ -202,7 +203,11 @@ dp_tx_mon_print_ring_stat_2_0(struct dp_pdev *pdev);
|
||||
#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 {
|
||||
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 {
|
||||
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 {
|
||||
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 {
|
||||
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 {
|
||||
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 {
|
||||
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 {
|
||||
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 {
|
||||
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 {
|
||||
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 {
|
||||
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 {
|
||||
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
|
||||
* @frametype: ppdu info frame type
|
||||
* @frame_type: ppdu info frame type
|
||||
* @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_slist_elem: support adding to single linked list
|
||||
* @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
|
||||
* @mpdu_drop_cnt: mpdu 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_FULL_CAPTURE: tx monitor mode to capture full packet
|
||||
* @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_FULL_CAPTURE: tx monitor frame work full 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
|
||||
/**
|
||||
* 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
|
||||
* @mode: tx monitor core framework current mode
|
||||
* @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
|
||||
*/
|
||||
@@ -493,8 +573,10 @@ struct dp_txmon_frag_vec {
|
||||
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_end_reason_bitmap: current end reason bitmap
|
||||
* @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
|
||||
*/
|
||||
@@ -564,19 +646,19 @@ struct dp_peer_tx_capture_be {
|
||||
};
|
||||
#endif /* WLAN_TX_PKT_CAPTURE_ENH_BE */
|
||||
|
||||
/*
|
||||
/**
|
||||
* 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
|
||||
*/
|
||||
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
|
||||
* @tx_ppdu_info - pointer to tx_ppdu_info
|
||||
* @usr_idx - user index
|
||||
* @tx_cap_be - pointer to tx capture be
|
||||
* @tx_ppdu_info: pointer to tx_ppdu_info
|
||||
* @usr_idx: user index
|
||||
* @tx_mon_be: pointer to tx monitor be
|
||||
*
|
||||
* 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,
|
||||
struct dp_pdev_tx_monitor_be *tx_mon_be);
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_tx_mon_free_ppdu_info() - API to free dp_tx_ppdu_info
|
||||
* @tx_ppdu_info - pointer to tx_ppdu_info
|
||||
* @tx_cap_be - pointer to tx capture be
|
||||
* @tx_ppdu_info: pointer to tx_ppdu_info
|
||||
* @tx_mon_be: pointer to tx monitor be
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
void dp_tx_mon_free_ppdu_info(struct dp_tx_ppdu_info *tx_ppdu_info,
|
||||
struct dp_pdev_tx_monitor_be *tx_mon_be);
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_tx_mon_get_ppdu_info() - API to allocate dp_tx_ppdu_info
|
||||
* @pdev - pdev handle
|
||||
* @type - type of ppdu_info data or protection
|
||||
* @num_user - number user in a ppdu_info
|
||||
* @ppdu_id - ppdu_id number
|
||||
* @pdev: pdev handle
|
||||
* @type: type of ppdu_info data or protection
|
||||
* @num_user: number user in a ppdu_info
|
||||
* @ppdu_id: ppdu_id number
|
||||
*
|
||||
* 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);
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_print_pdev_tx_monitor_stats_2_0: print tx capture stats
|
||||
* @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);
|
||||
|
||||
/*
|
||||
/**
|
||||
* 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
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
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
|
||||
* @pdev: Datapath PDEV handle
|
||||
* @peer: Datapath PEER handle
|
||||
/**
|
||||
* dp_peer_set_tx_capture_enabled_2_0() - add tx monitor peer filter
|
||||
* @pdev_handle: Datapath PDEV handle
|
||||
* @peer_handle: Datapath PEER handle
|
||||
* @is_tx_pkt_cap_enable: flag for tx capture enable/disable
|
||||
* @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 */
|
||||
|
||||
#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
|
||||
* @pdev_handle: DP_PDEV handle
|
||||
* @pdev: DP_PDEV handle
|
||||
* @val: user provided value
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* 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
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
@@ -28,15 +28,6 @@
|
||||
|
||||
#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
|
||||
dp_tx_mon_status_free_packet_buf(struct dp_pdev *pdev,
|
||||
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
|
||||
* @pdev: pdev Handle
|
||||
* @tx_ppdu_info: pointer to tx ppdu info structure
|
||||
* @user_id: user index
|
||||
* @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
|
||||
* @pdev: pdev Handle
|
||||
* @tx_ppdu_info: pointer to tx ppdu info structure
|
||||
* @take_ref:
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
@@ -1446,9 +1439,9 @@ dp_tx_process_pktlog_be(struct dp_soc *soc, struct dp_pdev *pdev,
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* 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
|
||||
*
|
||||
* Return: status
|
||||
@@ -1662,15 +1655,6 @@ dp_tx_mon_process_tlv_2_0(struct dp_pdev *pdev,
|
||||
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,
|
||||
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);
|
||||
}
|
||||
|
||||
/*
|
||||
* 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
|
||||
dp_tx_mon_process_status_tlv(struct dp_soc *soc,
|
||||
struct dp_pdev *pdev,
|
||||
@@ -1812,19 +1783,6 @@ free_status_buffer:
|
||||
|
||||
#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
|
||||
dp_tx_mon_process_status_tlv(struct dp_soc *soc,
|
||||
struct dp_pdev *pdev,
|
||||
@@ -1859,15 +1817,6 @@ dp_tx_mon_process_status_tlv(struct dp_soc *soc,
|
||||
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,
|
||||
int ppdu_id, int end_reason)
|
||||
{
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* 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
|
||||
* 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
|
||||
* @vdev_handle: Datapath VDEV handle
|
||||
* @smart_monitor: Flag to denote if its smart monitor mode
|
||||
* @dp_soc: DP soc context
|
||||
* @vdev_id: vdev ID
|
||||
* @special_monitor: Flag to denote if its smart monitor mode
|
||||
*
|
||||
* 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
|
||||
/**
|
||||
* dp_rx_nac_filter(): Function to perform filtering of non-associated
|
||||
* dp_rx_nac_filter() - Function to perform filtering of non-associated
|
||||
* clients
|
||||
* @pdev: DP pdev handle
|
||||
* @rx_pkt_hdr: Rx packet Header
|
||||
*
|
||||
* return: dp_vdev*
|
||||
* Return: dp_vdev*
|
||||
*/
|
||||
static
|
||||
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
|
||||
|
||||
#if defined(ATH_SUPPORT_NAC_RSSI) || defined(ATH_SUPPORT_NAC)
|
||||
/*
|
||||
/**
|
||||
* dp_update_filter_neighbour_peers() - set neighbour peers(nac clients)
|
||||
* address for smart mesh filtering
|
||||
* @txrx_soc: cdp soc handle
|
||||
* @soc_hdl: cdp soc handle
|
||||
* @vdev_id: id of virtual device object
|
||||
* @cmd: Add/Del command
|
||||
* @macaddr: nac client mac address
|
||||
@@ -1653,7 +1654,7 @@ fail0:
|
||||
}
|
||||
#endif /* ATH_SUPPORT_NAC_RSSI || ATH_SUPPORT_NAC */
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_update_mon_mac_filter() - Set/reset monitor mac filter
|
||||
* @soc_hdl: cdp soc handle
|
||||
* @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
|
||||
/**
|
||||
* 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
|
||||
* @vdev_id: id of DP vdev handle
|
||||
* @mac_addr: neighbour mac
|
||||
@@ -1805,14 +1806,6 @@ dp_enable_mon_reap_timer(struct cdp_soc_t *soc_hdl,
|
||||
|
||||
#if defined(DP_CON_MON)
|
||||
#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)
|
||||
{
|
||||
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
|
||||
/*
|
||||
/**
|
||||
* dp_mon_tx_enable_enhanced_stats() - Enable enhanced Tx stats
|
||||
* @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);
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* 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
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
@@ -1974,7 +1967,7 @@ dp_enable_enhanced_stats(struct cdp_soc_t *soc, uint8_t pdev_id)
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_mon_tx_disable_enhanced_stats() - Disable enhanced Tx stats
|
||||
* @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);
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_disable_enhanced_stats()- API to disable enhanced statistcs
|
||||
*
|
||||
* @param soc - the soc handle
|
||||
* @param pdev_id - pdev_id of pdev
|
||||
* @return - QDF_STATUS
|
||||
* @soc: the soc handle
|
||||
* @pdev_id: pdev_id of pdev
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
static QDF_STATUS
|
||||
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
|
||||
* @pdev_id: id of DP_PDEV handle
|
||||
* @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 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
|
||||
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;
|
||||
}
|
||||
|
||||
/* 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
|
||||
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
|
||||
|
||||
/*dp_peer_cal_clients_stats_update - update peer stats on cal client timer
|
||||
* @soc : Datapath SOC
|
||||
* @peer : Datapath peer
|
||||
* @arg : argument to iter function
|
||||
/**
|
||||
* dp_peer_cal_clients_stats_update() - update peer stats on cal client timer
|
||||
* @soc: Datapath SOC
|
||||
* @peer: Datapath peer
|
||||
* @arg: argument to iter function
|
||||
*/
|
||||
#ifdef IPA_OFFLOAD
|
||||
static void
|
||||
@@ -2397,7 +2394,8 @@ dp_peer_cal_clients_stats_update(struct dp_soc *soc,
|
||||
}
|
||||
#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
|
||||
*/
|
||||
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
|
||||
|
||||
#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
|
||||
* @pdev: DP PDEV handle
|
||||
* @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,
|
||||
qdf_nbuf_t tag_buf,
|
||||
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;
|
||||
}
|
||||
|
||||
/*
|
||||
* 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
|
||||
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;
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_peer_copy_delay_stats() - copy ppdu stats to peer delayed stats.
|
||||
* @peer: Datapath peer handle
|
||||
* @ppdu: User PPDU Descriptor
|
||||
@@ -2598,7 +2588,7 @@ dp_peer_copy_delay_stats(struct dp_peer *peer,
|
||||
ppdu->debug_copied = true;
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_peer_copy_stats_to_bar() - copy delayed stats to ppdu stats.
|
||||
* @peer: Datapath peer handle
|
||||
* @ppdu: PPDU Descriptor
|
||||
@@ -2647,7 +2637,7 @@ dp_peer_copy_stats_to_bar(struct dp_peer *peer,
|
||||
ppdu->debug_copied = true;
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_tx_rate_stats_update() - Update rate per-peer statistics
|
||||
* @peer: Datapath peer handle
|
||||
* @ppdu: PPDU Descriptor
|
||||
@@ -2755,7 +2745,7 @@ void dp_send_stats_event(struct dp_pdev *pdev, struct dp_peer *peer,
|
||||
#endif
|
||||
|
||||
#ifdef WLAN_FEATURE_11BE
|
||||
/*
|
||||
/**
|
||||
* dp_get_ru_index_frm_ru_tones() - get ru index
|
||||
* @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;
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_mon_get_ru_width_from_ru_size() - get ru_width from 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
|
||||
|
||||
#ifdef WLAN_TELEMETRY_STATS_SUPPORT
|
||||
/*
|
||||
/**
|
||||
* dp_pdev_telemetry_stats_update() - Update pdev telemetry stats
|
||||
* @pdev: Datapath pdev handle
|
||||
* @ppdu: PPDU Descriptor
|
||||
@@ -2988,7 +2978,7 @@ dp_pdev_telemetry_stats_update(
|
||||
{ }
|
||||
#endif
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_tx_stats_update() - Update per-peer statistics
|
||||
* @pdev: Datapath pdev 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_get_ppdu_info_user_index: Find and allocate a per-user descriptor for a PPDU,
|
||||
* if a new peer id arrives in a PPDU
|
||||
* pdev: DP pdev handle
|
||||
* @peer_id : peer unique identifier
|
||||
/**
|
||||
* dp_get_ppdu_info_user_index() - Find and allocate a per-user
|
||||
* descriptor for a PPDU, if a new peer id arrives in a PPDU
|
||||
* @pdev: DP pdev handle
|
||||
* @peer_id: peer unique identifier
|
||||
* @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,
|
||||
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;
|
||||
}
|
||||
|
||||
/*
|
||||
* dp_process_ppdu_stats_common_tlv: Process htt_ppdu_stats_common_tlv
|
||||
* pdev: DP pdev handle
|
||||
/**
|
||||
* dp_process_ppdu_stats_common_tlv() - Process htt_ppdu_stats_common_tlv
|
||||
* @pdev: DP pdev handle
|
||||
* @tag_buf: buffer containing the tlv htt_ppdu_stats_common_tlv
|
||||
* @ppdu_info: per ppdu tlv structure
|
||||
*
|
||||
* return:void
|
||||
* Return: void
|
||||
*/
|
||||
static void
|
||||
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);
|
||||
}
|
||||
|
||||
/*
|
||||
* 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
|
||||
* @ppdu_info: per ppdu tlv structure
|
||||
*
|
||||
* return:void
|
||||
* Return: void
|
||||
*/
|
||||
static void dp_process_ppdu_stats_user_common_tlv(
|
||||
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
|
||||
* @ppdu_info: per ppdu tlv structure
|
||||
*
|
||||
* return:void
|
||||
* Return: void
|
||||
*/
|
||||
static void
|
||||
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);
|
||||
}
|
||||
|
||||
/*
|
||||
* 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
|
||||
* pdev: DP PDEV handle
|
||||
* @pdev: DP PDEV handle
|
||||
* @tag_buf: buffer containing the tlv htt_ppdu_stats_enq_mpdu_bitmap_64_tlv
|
||||
* @ppdu_info: per ppdu tlv structure
|
||||
*
|
||||
* return:void
|
||||
* Return: void
|
||||
*/
|
||||
static void dp_process_ppdu_stats_enq_mpdu_bitmap_64_tlv(
|
||||
struct dp_pdev *pdev, uint32_t *tag_buf,
|
||||
@@ -3606,14 +3597,14 @@ static void dp_process_ppdu_stats_enq_mpdu_bitmap_64_tlv(
|
||||
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
|
||||
* soc: DP SOC handle
|
||||
* @pdev: DP PDEV handle
|
||||
* @tag_buf: buffer containing the tlv htt_ppdu_stats_enq_mpdu_bitmap_256_tlv
|
||||
* @ppdu_info: per ppdu tlv structure
|
||||
*
|
||||
* return:void
|
||||
* Return: void
|
||||
*/
|
||||
static void dp_process_ppdu_stats_enq_mpdu_bitmap_256_tlv(
|
||||
struct dp_pdev *pdev, uint32_t *tag_buf,
|
||||
@@ -3652,14 +3643,14 @@ static void dp_process_ppdu_stats_enq_mpdu_bitmap_256_tlv(
|
||||
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
|
||||
* soc: DP SOC handle
|
||||
* @pdev: DP PDEV handle
|
||||
* @tag_buf: buffer containing the tlv htt_ppdu_stats_user_cmpltn_common_tlv
|
||||
* @ppdu_info: per ppdu tlv structure
|
||||
*
|
||||
* return:void
|
||||
* Return: void
|
||||
*/
|
||||
static void dp_process_ppdu_stats_user_cmpltn_common_tlv(
|
||||
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);
|
||||
}
|
||||
|
||||
/*
|
||||
* 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
|
||||
* pdev: DP PDEV handle
|
||||
* @pdev: DP PDEV handle
|
||||
* @tag_buf: buffer containing the htt_ppdu_stats_user_compltn_ba_bitmap_64_tlv
|
||||
* @ppdu_info: per ppdu tlv structure
|
||||
*
|
||||
* return:void
|
||||
* Return: void
|
||||
*/
|
||||
static void dp_process_ppdu_stats_user_compltn_ba_bitmap_64_tlv(
|
||||
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;
|
||||
}
|
||||
|
||||
/*
|
||||
* 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
|
||||
* pdev: DP PDEV handle
|
||||
* @pdev: DP PDEV handle
|
||||
* @tag_buf: buffer containing the htt_ppdu_stats_user_compltn_ba_bitmap_256_tlv
|
||||
* @ppdu_info: per ppdu tlv structure
|
||||
*
|
||||
* return:void
|
||||
* Return: void
|
||||
*/
|
||||
static void dp_process_ppdu_stats_user_compltn_ba_bitmap_256_tlv(
|
||||
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;
|
||||
}
|
||||
|
||||
/*
|
||||
* 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
|
||||
* pdev: DP PDE handle
|
||||
* @pdev: DP PDEV handle
|
||||
* @tag_buf: buffer containing the htt_ppdu_stats_user_compltn_ack_ba_status_tlv
|
||||
* @ppdu_info: per ppdu tlv structure
|
||||
*
|
||||
* return:void
|
||||
* Return: void
|
||||
*/
|
||||
static void dp_process_ppdu_stats_user_compltn_ack_ba_status_tlv(
|
||||
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
|
||||
* pdev: DP PDEV handle
|
||||
* @pdev: DP PDEV handle
|
||||
* @tag_buf: buffer containing the htt_ppdu_stats_user_compltn_ack_ba_status_tlv
|
||||
* @ppdu_info: per ppdu tlv structure
|
||||
*
|
||||
* return:void
|
||||
* Return: void
|
||||
*/
|
||||
static void dp_process_ppdu_stats_user_common_array_tlv(
|
||||
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);
|
||||
}
|
||||
|
||||
/*
|
||||
* dp_process_ppdu_stats_flush_tlv: Process
|
||||
/**
|
||||
* dp_process_ppdu_stats_user_compltn_flush_tlv() - Process
|
||||
* htt_ppdu_stats_flush_tlv
|
||||
* @pdev: DP PDEV handle
|
||||
* @tag_buf: buffer containing the htt_ppdu_stats_flush_tlv
|
||||
* @ppdu_info: per ppdu tlv structure
|
||||
*
|
||||
* return:void
|
||||
* Return: void
|
||||
*/
|
||||
static void
|
||||
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.
|
||||
* @pdev: DP PDEV handle
|
||||
* @ppdu_info: per ppdu tlv structure
|
||||
*
|
||||
* return:void
|
||||
* Return: void
|
||||
*/
|
||||
static void
|
||||
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
|
||||
(pdev->soc, ppdu_desc->user[i].peer_id,
|
||||
DP_MOD_ID_TX_PPDU_STATS);
|
||||
/**
|
||||
/*
|
||||
* This check is to make sure peer is not deleted
|
||||
* 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;
|
||||
start_tsf = ppdu_desc->ppdu_start_timestamp;
|
||||
end_tsf = ppdu_desc->ppdu_end_timestamp;
|
||||
/**
|
||||
/*
|
||||
* save delayed ba user info
|
||||
*/
|
||||
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,
|
||||
ppdu_desc->user[i].peer_id,
|
||||
DP_MOD_ID_TX_PPDU_STATS);
|
||||
/**
|
||||
/*
|
||||
* This check is to make sure peer is not deleted
|
||||
* 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
|
||||
*
|
||||
* 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
|
||||
*
|
||||
* dp_validate_fix_ppdu_tlv() - Function to validate the length of PPDU
|
||||
* @pdev: DP pdev handle
|
||||
* @tag_buf: TLV buffer
|
||||
* @tlv_expected_size: Expected size of Tag
|
||||
* @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
|
||||
*/
|
||||
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
|
||||
* @tag_buf: TLV buffer
|
||||
* @tlv_len: length of tlv
|
||||
* @ppdu_info: per ppdu tlv structure
|
||||
*
|
||||
* return: void
|
||||
* Return: void
|
||||
*/
|
||||
static void dp_process_ppdu_tag(struct dp_pdev *pdev,
|
||||
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)
|
||||
nss_ru_width_sum = 1;
|
||||
|
||||
/**
|
||||
/*
|
||||
* 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
|
||||
* 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 */
|
||||
|
||||
/**
|
||||
* 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
|
||||
dp_ppdu_desc_user_stats_update(struct dp_pdev *pdev,
|
||||
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,
|
||||
ppdu_desc->user[i].peer_id,
|
||||
DP_MOD_ID_TX_PPDU_STATS);
|
||||
/**
|
||||
/*
|
||||
* This check is to make sure peer is not deleted
|
||||
* after processing the TLVs.
|
||||
*/
|
||||
@@ -4559,7 +4542,7 @@ dp_ppdu_desc_user_stats_update(struct dp_pdev *pdev,
|
||||
continue;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Update tx stats for data frames having Qos as well as
|
||||
* 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)
|
||||
/*
|
||||
/**
|
||||
* dp_tx_ppdu_desc_notify() - Notify to upper layer about PPDU via WDI
|
||||
*
|
||||
* @pdev: Datapath pdev handle
|
||||
@@ -4682,9 +4665,8 @@ void dp_ppdu_desc_deliver(struct dp_pdev *pdev,
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_tx_ppdu_desc_deliver() - Deliver PPDU desc to upper layer
|
||||
*
|
||||
* @pdev: Datapath pdev handle
|
||||
* @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
|
||||
* @pdev: DP pdev handle
|
||||
* @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
|
||||
* @max_users: Maximum user for that particular ppdu
|
||||
*
|
||||
* return: ppdu_info per ppdu tlv structure
|
||||
* Return: ppdu_info per ppdu tlv structure
|
||||
*/
|
||||
static
|
||||
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->tlv_bitmap & (1 << tlv_type)) {
|
||||
/**
|
||||
/*
|
||||
* if we get tlv_type that is already been processed
|
||||
* for ppdu, that means we got a new ppdu with same
|
||||
* 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 *)
|
||||
qdf_nbuf_data(ppdu_info->nbuf);
|
||||
|
||||
/**
|
||||
/*
|
||||
* apart from ACK BA STATUS TLV rest all comes in order
|
||||
* so if tlv type not ACK BA STATUS TLV we can deliver
|
||||
* 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
|
||||
* 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->tsf_l32 = tsf_l32;
|
||||
/**
|
||||
/*
|
||||
* No lock is needed because all PPDU TLVs are processed in
|
||||
* 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
|
||||
* @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,
|
||||
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;
|
||||
|
||||
/**
|
||||
/*
|
||||
* Not allocating separate ppdu descriptor for MGMT Payload
|
||||
* TLV as this is sent as separate WDI indication and it
|
||||
* 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);
|
||||
|
||||
/**
|
||||
/*
|
||||
* Increment pdev level tlv count to monitor
|
||||
* missing TLVs
|
||||
*/
|
||||
@@ -5050,7 +5032,7 @@ static struct ppdu_info *dp_htt_process_tlv(struct dp_pdev *pdev,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* Once all the TLVs for a given PPDU has been processed,
|
||||
* return PPDU status to be delivered to higher layer.
|
||||
* 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
|
||||
* @htt_t2h_msg: HTT message nbuf
|
||||
*
|
||||
* return:void
|
||||
* Return: void
|
||||
*/
|
||||
static bool dp_txrx_ppdu_stats_handler(struct dp_soc *soc,
|
||||
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) &&\
|
||||
(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
|
||||
dp_ppdu_stats_ind_handler(struct htt_soc *soc,
|
||||
uint32_t *msg_word,
|
||||
@@ -6156,9 +6130,13 @@ void dp_mon_ppdu_stats_handler_deregister(struct dp_mon_soc *mon_soc)
|
||||
#endif
|
||||
|
||||
#ifdef QCA_RSSI_DB2DBM
|
||||
/*
|
||||
/**
|
||||
* 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[][])
|
||||
* considering row index as active chains and column
|
||||
* 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
|
||||
* 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
|
||||
* 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;
|
||||
}
|
||||
|
||||
/*
|
||||
* 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.
|
||||
*@cdp_soc: dp soc handle.
|
||||
*@params: cdp_rssi_db2dbm_param_dp structure value.
|
||||
* @cdp_soc: dp soc handle.
|
||||
* @params: cdp_rssi_db2dbm_param_dp structure value.
|
||||
*
|
||||
* Return: QDF_STATUS_SUCCESS if value set successfully
|
||||
* QDF_STATUS_E_INVAL false if error
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* 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
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
@@ -23,7 +23,7 @@
|
||||
#include <dp_mon_filter.h>
|
||||
#include <dp_mon.h>
|
||||
|
||||
/**
|
||||
/*
|
||||
* dp_mon_filter_mode_type_to_str
|
||||
* 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
|
||||
/**
|
||||
* 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,
|
||||
enum dp_mon_filter_srng_type srng_type,
|
||||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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)
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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 **mon_filter = NULL;
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* 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
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
@@ -20,7 +20,7 @@
|
||||
#ifndef _DP_MON_FILTER_H_
|
||||
#define _DP_MON_FILTER_H_
|
||||
|
||||
/**
|
||||
/*
|
||||
* Accessor Macros to access the software
|
||||
* defined HTT filter htt_rx_ring_tlv_filter.
|
||||
*/
|
||||
@@ -96,7 +96,9 @@ struct dp_mon_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
|
||||
* @DP_MON_FILTER_ENHACHED_STATS_MODE: PPDU enhanced stats 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_CBF_MODE: Packet log cbf 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 {
|
||||
#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
|
||||
* into the radio structure.
|
||||
* @DP_MON_FILTER_CLEAR - Clears the filter for a mode
|
||||
* @DP_MON_FILTER_SET - Set the filtes for a mode
|
||||
* @DP_MON_FILTER_CLEAR: Clears the filter for a mode
|
||||
* @DP_MON_FILTER_SET: Set the filtes for a mode
|
||||
*/
|
||||
enum dp_mon_filter_action {
|
||||
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
|
||||
* @pdev: DP pdev handle
|
||||
* @mon_pdev: DP pdev handle
|
||||
* @mode: The filter modes
|
||||
* @tlv_filter: tlv filter
|
||||
* @filter: tlv filter
|
||||
*/
|
||||
void dp_mon_filter_show_filter(struct dp_mon_pdev *mon_pdev,
|
||||
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
|
||||
* @pdev: DP pdev handle
|
||||
* @mon_pdev: DP pdev handle
|
||||
* @filter: DP mon filter
|
||||
*
|
||||
* 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
|
||||
* @pdev: DP pdev handle
|
||||
* @mon_pdev: DP pdev handle
|
||||
* @filter: Dp mon filters
|
||||
*
|
||||
* 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
|
||||
* the radio object.
|
||||
* @pdev: DP pdev handle
|
||||
* @mon_pdev: DP pdev handle
|
||||
*/
|
||||
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);
|
||||
|
||||
/*
|
||||
* dp_mon_filter_h2t_setup () - Setup filter
|
||||
/**
|
||||
* dp_mon_filter_h2t_setup() - Setup filter
|
||||
* @soc: Dp soc handle
|
||||
* @pdev: pdev handle
|
||||
* @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);
|
||||
|
||||
/**
|
||||
* dp_mon_ht2_rx_ring_cfg () - Configure filter to HW
|
||||
* dp_mon_ht2_rx_ring_cfg() - Configure filter to HW
|
||||
* @soc: Dp soc handle
|
||||
* @pdev: Dp pdev handle
|
||||
* @srng_type: SRNG type
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* 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 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
|
||||
* @pdev: pdev ctx
|
||||
* @ppdu_info: structure for rx ppdu ring
|
||||
*
|
||||
* Return: Success/ Failure
|
||||
@@ -284,7 +285,7 @@ dp_bb_captured_chan_status(struct dp_pdev *pdev,
|
||||
* index in the rssi_chain[chain][bw] array
|
||||
*
|
||||
* @chain: BB chain index
|
||||
* @pdev: pdev structure
|
||||
* @mon_pdev: pdev structure
|
||||
*
|
||||
* Return: return RF chain index
|
||||
*
|
||||
@@ -662,10 +663,10 @@ end:
|
||||
}
|
||||
|
||||
/**
|
||||
* dp_rx_stats_update() - Update per-peer statistics
|
||||
* @soc: Datapath SOC handle
|
||||
* dp_rx_rate_stats_update() - Update per-peer rate statistics
|
||||
* @peer: Datapath peer handle
|
||||
* @ppdu: PPDU Descriptor
|
||||
* @user: user index
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* 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
|
||||
* 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
|
||||
*
|
||||
* @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_LAG - status ppdu id is lagging
|
||||
* @DP_MON_STATUS_LEAD - status ppdu id is leading
|
||||
* @DP_MON_STATUS_REPLENISH - status ring entry is NULL
|
||||
* @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_LAG: status ppdu id is lagging
|
||||
* @DP_MON_STATUS_LEAD: status ppdu id is leading
|
||||
* @DP_MON_STATUS_REPLENISH: status ring entry is NULL
|
||||
*/
|
||||
enum dp_mon_reap_status {
|
||||
DP_MON_STATUS_NO_DMA,
|
||||
@@ -83,7 +83,7 @@ enum dp_mon_reap_status {
|
||||
DP_MON_STATUS_REPLENISH
|
||||
};
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_rx_mon_status_process() - Process monitor status ring and
|
||||
* TLV in status ring.
|
||||
*
|
||||
@@ -91,20 +91,20 @@ enum dp_mon_reap_status {
|
||||
* @int_ctx: interrupt context
|
||||
* @mac_id: mac_id which is one of 3 mac_ids
|
||||
* @quota: No. of ring entry that can be serviced in one shot.
|
||||
|
||||
*
|
||||
* Return: uint32_t: No. of ring entry that is processed.
|
||||
*/
|
||||
uint32_t
|
||||
dp_rx_mon_status_process(struct dp_soc *soc, struct dp_intr *int_ctx,
|
||||
uint32_t mac_id, uint32_t quota);
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_rx_populate_cbf_hdr - Send CBF frame with htt header
|
||||
* @soc: Datapath soc handle
|
||||
* @mac_id: Datapath mac id
|
||||
* @event: WDI event
|
||||
* @mpdu: mpdu buffer
|
||||
* @msdu_timesstamp: time stamp
|
||||
* @data: mpdu buffer
|
||||
* @msdu_timestamp: time stamp
|
||||
*
|
||||
* 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);
|
||||
|
||||
/**
|
||||
* 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
|
||||
*
|
||||
* @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);
|
||||
|
||||
/**
|
||||
* 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
|
||||
*
|
||||
* @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_nbuf_t head_msdu, qdf_nbuf_t tail_msdu);
|
||||
/*
|
||||
|
||||
/**
|
||||
* dp_rx_mon_deliver_non_std() - deliver frames for non standard path
|
||||
* @soc: core txrx main context
|
||||
* @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);
|
||||
|
||||
#ifndef REMOVE_MON_DBG_STATS
|
||||
/*
|
||||
/**
|
||||
* dp_rx_mon_update_dbg_ppdu_stats() - Update status ring TLV count
|
||||
* @ppdu_info: HAL RX PPDU info retrieved from status ring TLV
|
||||
* @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
|
||||
* @ppdu_info: HAL RX PPDU info retrieved from status ring TLV
|
||||
* @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 dp_pdev *pdev);
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_rx_populate_su_evm_details() - Populate su evm info
|
||||
* @ppdu_info: ppdu info structure from ppdu ring
|
||||
* @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
|
||||
* @pdev: pdev structure
|
||||
* @ppdu_info: structure for rx ppdu ring
|
||||
* @tlv_status: processed TLV status
|
||||
*
|
||||
@@ -502,7 +504,8 @@ int
|
||||
dp_rx_handle_smart_mesh_mode(struct dp_soc *soc, struct dp_pdev *pdev,
|
||||
struct hal_rx_ppdu_info *ppdu_info,
|
||||
qdf_nbuf_t nbuf);
|
||||
/*
|
||||
|
||||
/**
|
||||
* dp_rx_nbuf_prepare() - prepare RX nbuf
|
||||
* @soc: core txrx main 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)
|
||||
|
||||
/*
|
||||
/**
|
||||
* 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
|
||||
* 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 cdp_rx_indication_ppdu *cdp_rx_ppdu);
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_rx_mon_populate_cfr_ppdu_info() - Populate cdp ppdu info from hal ppdu
|
||||
* info
|
||||
* @pdev: pdev ctx
|
||||
@@ -555,7 +558,7 @@ dp_rx_mon_populate_cfr_ppdu_info(struct dp_pdev *pdev,
|
||||
bool
|
||||
dp_cfr_rcc_mode_status(struct dp_pdev *pdev);
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_rx_mon_populate_cfr_info() - Populate cdp ppdu info from hal cfr info
|
||||
* @pdev: pdev ctx
|
||||
* @ppdu_info: ppdu info structure from ppdu ring
|
||||
@@ -579,7 +582,7 @@ void
|
||||
dp_update_cfr_dbg_stats(struct dp_pdev *pdev,
|
||||
struct hal_rx_ppdu_info *ppdu_info);
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_rx_handle_cfr() - Gather cfr info from hal ppdu info
|
||||
* @soc: core txrx main context
|
||||
* @pdev: pdev ctx
|
||||
@@ -653,7 +656,7 @@ dp_cfr_rcc_mode_status(struct dp_pdev *pdev)
|
||||
}
|
||||
#endif /* WLAN_CFR_ENABLE && WLAN_ENH_CFR_ENABLE */
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_rx_mon_deliver(): function to deliver packets to stack
|
||||
* @soc: DP soc
|
||||
* @mac_id: MAC ID
|
||||
@@ -668,15 +671,15 @@ QDF_STATUS dp_rx_mon_deliver(struct dp_soc *soc,
|
||||
qdf_nbuf_t tail_msdu);
|
||||
|
||||
/**
|
||||
* dp_rx_mon_deliver_non_std()
|
||||
* @soc: core txrx main context
|
||||
* @mac_id: MAC ID
|
||||
*
|
||||
* This function delivers the radio tap and dummy MSDU
|
||||
* into user layer application for preamble only PPDU.
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
* dp_rx_mon_deliver_non_std()
|
||||
* @soc: core txrx main context
|
||||
* @mac_id: MAC ID
|
||||
*
|
||||
* This function delivers the radio tap and dummy MSDU
|
||||
* into user layer application for preamble only PPDU.
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS dp_rx_mon_deliver_non_std(struct dp_soc *soc,
|
||||
uint32_t mac_id);
|
||||
|
||||
@@ -730,7 +733,7 @@ qdf_frag_t dp_rx_mon_get_nbuf_80211_hdr(qdf_nbuf_t nbuf)
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
/**
|
||||
* dp_rx_mon_process_dest_pktlog(): function to log packet contents to
|
||||
* pktlog buffer and send to pktlog module
|
||||
* @soc: DP soc
|
||||
|
Reference in New Issue
Block a user