qcacmn: Fix WKK monitor compilation issues
Fix WKK monitor compilation issues Change-Id: I04bd89341e61bdcef59ecb03baa6cf53ca970cbe CRs-Fixed: 3100286
This commit is contained in:

zatwierdzone przez
Madan Koyyalamudi

rodzic
3abc7d0459
commit
484c917fbf
@@ -24,7 +24,6 @@
|
||||
#include "dp_be_tx.h"
|
||||
#include "dp_be_rx.h"
|
||||
#if !defined(DISABLE_MON_CONFIG) && defined(QCA_MONITOR_2_0_SUPPORT)
|
||||
#ifdef QCA_MONITOR_2_0_SUPPORT
|
||||
#include "dp_mon_2.0.h"
|
||||
#endif
|
||||
#include <hal_be_api.h>
|
||||
@@ -1481,9 +1480,7 @@ void dp_initialize_arch_ops_be(struct dp_arch_ops *arch_ops)
|
||||
dp_wbm_get_rx_desc_from_hal_desc_be;
|
||||
#endif
|
||||
arch_ops->txrx_get_context_size = dp_get_context_size_be;
|
||||
#if QCA_MONITOR_2_0_SUPPORT
|
||||
arch_ops->txrx_get_mon_context_size = dp_mon_get_context_size_be;
|
||||
#endif
|
||||
arch_ops->dp_rx_desc_cookie_2_va =
|
||||
dp_rx_desc_cookie_2_va_be;
|
||||
|
||||
|
@@ -293,7 +293,6 @@ void dp_initialize_arch_ops_be(struct dp_arch_ops *arch_ops);
|
||||
*/
|
||||
qdf_size_t dp_get_context_size_be(enum dp_context_type context_type);
|
||||
|
||||
#if QCA_MONITOR_2_0_SUPPORT
|
||||
/**
|
||||
* dp_mon_get_context_size_be() - get BE specific size for mon pdev/soc
|
||||
* @arch_ops: arch ops pointer
|
||||
@@ -301,7 +300,6 @@ qdf_size_t dp_get_context_size_be(enum dp_context_type context_type);
|
||||
* Return: size in bytes for the context_type
|
||||
*/
|
||||
qdf_size_t dp_mon_get_context_size_be(enum dp_context_type context_type);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* dp_get_be_soc_from_dp_soc() - get dp_soc_be from dp_soc
|
||||
|
@@ -2297,6 +2297,7 @@ struct dp_soc {
|
||||
qdf_atomic_t ref_count;
|
||||
|
||||
unsigned long vdev_stats_id_map;
|
||||
bool txmon_hw_support;
|
||||
};
|
||||
|
||||
#ifdef IPA_OFFLOAD
|
||||
|
@@ -28,6 +28,7 @@
|
||||
#include <dp_tx_mon_2.0.h>
|
||||
#include <hal_be_api_mon.h>
|
||||
#include <dp_be.h>
|
||||
#include <htt_ppdu_stats.h>
|
||||
|
||||
#if !defined(DISABLE_MON_CONFIG)
|
||||
/*
|
||||
@@ -183,7 +184,7 @@ dp_mon_buffers_replenish(struct dp_soc *dp_soc,
|
||||
tail);
|
||||
|
||||
if (!num_alloc_desc) {
|
||||
dp_mon_err("%pK: no free rx_descs in freelist", dp_soc);
|
||||
dp_mon_debug("%pK: no free rx_descs in freelist", dp_soc);
|
||||
return QDF_STATUS_E_NOMEM;
|
||||
}
|
||||
|
||||
@@ -342,19 +343,6 @@ QDF_STATUS dp_vdev_set_monitor_mode_rings_2_0(struct dp_pdev *pdev,
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#else
|
||||
static inline
|
||||
void dp_vdev_set_monitor_mode_buf_rings_2_0(struct dp_pdev *pdev)
|
||||
{
|
||||
}
|
||||
|
||||
static inline
|
||||
QDF_STATUS dp_vdev_set_monitor_mode_rings_2_0(struct dp_pdev *pdev,
|
||||
uint8_t delayed_replenish)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(QCA_ENHANCED_STATS_SUPPORT) && defined(WLAN_FEATURE_11BE)
|
||||
void
|
||||
@@ -368,10 +356,12 @@ dp_mon_tx_stats_update_2_0(struct dp_peer *peer,
|
||||
mcs = ppdu->mcs;
|
||||
|
||||
DP_STATS_INCC(peer,
|
||||
tx.pkt_type[preamble].mcs_count[MAX_MCS - 1], num_msdu,
|
||||
tx.pkt_type[preamble].mcs_count[MAX_MCS - 1],
|
||||
ppdu->num_msdu,
|
||||
((mcs >= (MAX_MCS - 1)) && (preamble == DOT11_BE)));
|
||||
DP_STATS_INCC(peer,
|
||||
tx.pkt_type[preamble].mcs_count[mcs], num_msdu,
|
||||
tx.pkt_type[preamble].mcs_count[mcs],
|
||||
ppdu->num_msdu,
|
||||
((mcs < (MAX_MCS - 1)) && (preamble == DOT11_BE)));
|
||||
DP_STATS_INCC(peer,
|
||||
tx.su_be_ppdu_cnt.mcs_count[MAX_MCS - 1], 1,
|
||||
@@ -382,22 +372,22 @@ dp_mon_tx_stats_update_2_0(struct dp_peer *peer,
|
||||
((mcs < (MAX_MCS - 1)) && (preamble == DOT11_BE) &&
|
||||
(ppdu->ppdu_type == HTT_PPDU_STATS_PPDU_TYPE_SU)));
|
||||
DP_STATS_INCC(peer,
|
||||
tx.mu_be_ppdu_cnt[TXRX_TYPE_MU_OFDMA].ppdu.mcs_count[MAX_MCS - 1],
|
||||
tx.mu_be_ppdu_cnt[TXRX_TYPE_MU_OFDMA].mcs_count[MAX_MCS - 1],
|
||||
1, ((mcs >= (MAX_MCS - 1)) &&
|
||||
(preamble == DOT11_BE) &&
|
||||
(ppdu->ppdu_type == HTT_PPDU_STATS_PPDU_TYPE_MU_OFDMA)));
|
||||
DP_STATS_INCC(peer,
|
||||
tx.mu_be_ppdu_cnt[TXRX_TYPE_MU_OFDMA].ppdu.mcs_count[mcs],
|
||||
tx.mu_be_ppdu_cnt[TXRX_TYPE_MU_OFDMA].mcs_count[mcs],
|
||||
1, ((mcs < (MAX_MCS - 1)) &&
|
||||
(preamble == DOT11_BE) &&
|
||||
(ppdu->ppdu_type == HTT_PPDU_STATS_PPDU_TYPE_MU_OFDMA)));
|
||||
DP_STATS_INCC(peer,
|
||||
tx.mu_be_ppdu_cnt[TXRX_TYPE_MU_MIMO].ppdu.mcs_count[MAX_MCS - 1],
|
||||
tx.mu_be_ppdu_cnt[TXRX_TYPE_MU_MIMO].mcs_count[MAX_MCS - 1],
|
||||
1, ((mcs >= (MAX_MCS - 1)) &&
|
||||
(preamble == DOT11_BE) &&
|
||||
(ppdu->ppdu_type == HTT_PPDU_STATS_PPDU_TYPE_MU_MIMO)));
|
||||
DP_STATS_INCC(peer,
|
||||
tx.mu_be_ppdu_cnt[TXRX_TYPE_MU_MIMO].ppdu.mcs_count[mcs],
|
||||
tx.mu_be_ppdu_cnt[TXRX_TYPE_MU_MIMO].mcs_count[mcs],
|
||||
1, ((mcs < (MAX_MCS - 1)) &&
|
||||
(preamble == DOT11_BE) &&
|
||||
(ppdu->ppdu_type == HTT_PPDU_STATS_PPDU_TYPE_MU_MIMO)));
|
||||
@@ -410,7 +400,7 @@ dp_mon_tx_stats_update_2_0(struct dp_peer *peer,
|
||||
struct cdp_tx_completion_ppdu_user *ppdu)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
#endif /* QCA_ENHANCED_STATS_SUPPORT && WLAN_FEATURE_11BE */
|
||||
|
||||
#ifdef QCA_SUPPORT_BPR
|
||||
static QDF_STATUS
|
||||
@@ -418,9 +408,8 @@ dp_set_bpr_enable_2_0(struct dp_pdev *pdev, int val)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
#endif /* QCA_SUPPORT_BPR */
|
||||
|
||||
#ifndef DISABLE_MON_CONFIG
|
||||
static
|
||||
QDF_STATUS dp_mon_soc_htt_srng_setup_2_0(struct dp_soc *soc)
|
||||
{
|
||||
@@ -484,17 +473,17 @@ QDF_STATUS dp_mon_pdev_htt_srng_setup_2_0(struct dp_soc *soc,
|
||||
QDF_STATUS dp_tx_mon_refill_buf_ring_2_0(struct dp_intr *int_ctx)
|
||||
{
|
||||
struct dp_soc *soc = int_ctx->soc;
|
||||
struct dp_mon_soc *mon_soc = soc->monitor_soc;
|
||||
union dp_mon_desc_list_elem_t *desc_list = NULL;
|
||||
union dp_mon_desc_list_elem_t *tail = NULL;
|
||||
struct dp_srng *tx_mon_buf_ring;
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
struct dp_mon_soc_be *mon_soc_be = be_soc->monitor_soc_be;
|
||||
struct dp_intr_stats *intr_stats = &int_ctx->intr_stats;
|
||||
struct dp_mon_soc_be *mon_soc_be = dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
uint32_t num_entries_avail;
|
||||
int sync_hw_ptr = 1;
|
||||
void *hal_srng;
|
||||
|
||||
tx_mon_buf_ring = &be_soc->monitor_soc_be->tx_mon_buf_ring;
|
||||
tx_mon_buf_ring = &mon_soc_be->tx_mon_buf_ring;
|
||||
hal_srng = tx_mon_buf_ring->hal_srng;
|
||||
|
||||
intr_stats->num_host2txmon_ring__masks++;
|
||||
@@ -505,9 +494,10 @@ QDF_STATUS dp_tx_mon_refill_buf_ring_2_0(struct dp_intr *int_ctx)
|
||||
sync_hw_ptr);
|
||||
hal_srng_access_end(soc->hal_soc, hal_srng);
|
||||
|
||||
dp_mon_buffers_replenish(soc, tx_mon_buf_ring,
|
||||
&be_soc->monitor_soc_be->tx_desc_mon,
|
||||
num_entries_avail, &desc_list, &tail);
|
||||
if (num_entries_avail)
|
||||
dp_mon_buffers_replenish(soc, tx_mon_buf_ring,
|
||||
&mon_soc_be->tx_desc_mon,
|
||||
num_entries_avail, &desc_list, &tail);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
@@ -515,12 +505,12 @@ QDF_STATUS dp_tx_mon_refill_buf_ring_2_0(struct dp_intr *int_ctx)
|
||||
QDF_STATUS dp_rx_mon_refill_buf_ring_2_0(struct dp_intr *int_ctx)
|
||||
{
|
||||
struct dp_soc *soc = int_ctx->soc;
|
||||
struct dp_mon_soc *mon_soc = soc->monitor_soc;
|
||||
union dp_mon_desc_list_elem_t *desc_list = NULL;
|
||||
union dp_mon_desc_list_elem_t *tail = NULL;
|
||||
struct dp_srng *rx_mon_buf_ring;
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
struct dp_mon_soc_be *mon_soc_be = be_soc->monitor_soc_be;
|
||||
struct dp_intr_stats *intr_stats = &int_ctx->intr_stats;
|
||||
struct dp_mon_soc_be *mon_soc_be = dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
uint32_t num_entries_avail;
|
||||
int sync_hw_ptr = 1;
|
||||
void *hal_srng;
|
||||
@@ -536,21 +526,14 @@ QDF_STATUS dp_rx_mon_refill_buf_ring_2_0(struct dp_intr *int_ctx)
|
||||
sync_hw_ptr);
|
||||
hal_srng_access_end(soc->hal_soc, hal_srng);
|
||||
|
||||
dp_mon_buffers_replenish(soc, rx_mon_buf_ring,
|
||||
&be_soc->monitor_soc_be->rx_desc_mon,
|
||||
num_entries_avail, &desc_list, &tail);
|
||||
if (num_entries_avail)
|
||||
dp_mon_buffers_replenish(soc, rx_mon_buf_ring,
|
||||
&mon_soc_be->rx_desc_mon,
|
||||
num_entries_avail, &desc_list, &tail);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
#ifndef DISABLE_MON_CONFIG
|
||||
static uint32_t
|
||||
dp_rx_mon_process_2_0(struct dp_soc *soc, struct dp_intr *int_ctx,
|
||||
uint32_t mac_id, uint32_t quota)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static
|
||||
QDF_STATUS dp_mon_soc_detach_2_0(struct dp_soc *soc)
|
||||
{
|
||||
@@ -790,13 +773,6 @@ QDF_STATUS dp_mon_htt_srng_setup_2_0(struct dp_soc *soc,
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static uint32_t
|
||||
dp_rx_mon_process_2_0(struct dp_soc *soc, struct dp_intr *int_ctx,
|
||||
uint32_t mac_id, uint32_t quota)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static uint32_t
|
||||
dp_tx_mon_process_2_0(struct dp_soc *soc, struct dp_intr *int_ctx,
|
||||
uint32_t mac_id, uint32_t quota)
|
||||
@@ -848,12 +824,28 @@ QDF_STATUS dp_mon_pdev_alloc_2_0(struct dp_pdev *pdev)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static inline
|
||||
void dp_vdev_set_monitor_mode_buf_rings_2_0(struct dp_pdev *pdev)
|
||||
{
|
||||
}
|
||||
|
||||
static inline
|
||||
QDF_STATUS dp_vdev_set_monitor_mode_rings_2_0(struct dp_pdev *pdev,
|
||||
uint8_t delayed_replenish)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
||||
static void dp_mon_register_intr_ops_2_0(struct dp_soc *soc)
|
||||
{
|
||||
struct dp_mon_soc *mon_soc = soc->monitor_soc;
|
||||
|
||||
mon_soc->mon_ops->rx_mon_refill_buf_ring =
|
||||
dp_rx_mon_refill_buf_ring_2_0,
|
||||
mon_soc->mon_ops->tx_mon_refill_buf_ring =
|
||||
dp_tx_mon_refill_buf_ring_2_0,
|
||||
mon_soc->mon_rx_process = dp_rx_mon_process_2_0;
|
||||
}
|
||||
|
||||
@@ -972,10 +964,10 @@ dp_mon_register_feature_ops_2_0(struct dp_soc *soc)
|
||||
mon_ops->mon_vdev_set_monitor_mode_rings =
|
||||
dp_vdev_set_monitor_mode_rings_2_0;
|
||||
#ifdef QCA_ENHANCED_STATS_SUPPORT
|
||||
mon_ops->mon_rx_stats_update = dp_mon_rx_stats_update_2_0;
|
||||
mon_ops->mon_rx_stats_update = dp_rx_mon_stats_update_2_0;
|
||||
mon_ops->mon_rx_populate_ppdu_usr_info =
|
||||
dp_mon_populate_ppdu_usr_info_2_0;
|
||||
mon_ops->mon_rx_populate_ppdu_info = dp_mon_populate_ppdu_info_2_0;
|
||||
dp_rx_mon_populate_ppdu_usr_info_2_0;
|
||||
mon_ops->mon_rx_populate_ppdu_info = dp_rx_mon_populate_ppdu_info_2_0;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@@ -1345,7 +1345,7 @@ dp_mon_filter_set_reset_rx_pkt_log_cbf_dest_2_0(struct dp_pdev_be *pdev_be,
|
||||
struct dp_soc *soc = pdev_be->pdev.soc;
|
||||
enum dp_mon_filter_mode mode = DP_MON_FILTER_PKT_LOG_CBF_MODE;
|
||||
enum dp_mon_filter_srng_type srng_type;
|
||||
struct dp_mon_pdev *mon_pdev = pdev_be->pdev->monitor_pdev;
|
||||
struct dp_mon_pdev *mon_pdev = pdev_be->pdev.monitor_pdev;
|
||||
struct dp_mon_pdev_be *mon_pdev_be =
|
||||
dp_get_be_mon_pdev_from_dp_mon_pdev(mon_pdev);
|
||||
|
||||
@@ -1397,7 +1397,7 @@ void dp_mon_filter_setup_rx_pkt_log_cbf_2_0(struct dp_pdev *pdev)
|
||||
/* Enabled the filter */
|
||||
filter.rx_tlv_filter.valid = true;
|
||||
|
||||
dp_mon_filter_set_status_cbf(&pdev, &filter.rx_tlv_filter);
|
||||
dp_mon_filter_set_status_cbf(pdev, &filter.rx_tlv_filter);
|
||||
dp_mon_filter_show_filter_be(mon_pdev_be, mode, &filter);
|
||||
mon_pdev_be->filter_be[mode][srng_type] = filter;
|
||||
|
||||
@@ -1688,6 +1688,12 @@ QDF_STATUS dp_tx_mon_filter_update_2_0(struct dp_pdev *pdev)
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
soc = pdev->soc;
|
||||
if (!soc) {
|
||||
dp_mon_filter_err("soc Context is null");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
filter_ptr = &mon_pdev_be->filter_be[mode][srng_type];
|
||||
if (!filter_ptr) {
|
||||
dp_mon_filter_err("Filter not allocated");
|
||||
|
@@ -205,14 +205,14 @@ dp_rx_mon_buffers_alloc(struct dp_soc *soc, uint32_t size)
|
||||
|
||||
#ifdef QCA_ENHANCED_STATS_SUPPORT
|
||||
void
|
||||
dp_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_usr_info_2_0(struct mon_rx_user_status *rx_user_status,
|
||||
struct cdp_rx_stats_ppdu_user *ppdu_user)
|
||||
{
|
||||
ppdu_user->mpdu_retries = rx_user_status->retry_mpdu;
|
||||
}
|
||||
|
||||
#ifdef WLAN_FEATURE_11BE
|
||||
void dp_mon_rx_stats_update_2_0(struct dp_peer *peer,
|
||||
void dp_rx_mon_stats_update_2_0(struct dp_peer *peer,
|
||||
struct cdp_rx_indication_ppdu *ppdu,
|
||||
struct cdp_rx_stats_ppdu_user *ppdu_user)
|
||||
{
|
||||
@@ -235,35 +235,35 @@ void dp_mon_rx_stats_update_2_0(struct dp_peer *peer,
|
||||
((mcs < (MAX_MCS - 1)) && (preamble == DOT11_BE) &&
|
||||
(ppdu_type == HAL_RX_TYPE_SU)));
|
||||
DP_STATS_INCC(peer,
|
||||
rx.rx_mu_be[TXRX_TYPE_MU_OFDMA].ppdu.mcs_count[MAX_MCS - 1],
|
||||
rx.rx_mu_be[TXRX_TYPE_MU_OFDMA].mcs_count[MAX_MCS - 1],
|
||||
1, ((mcs >= (MAX_MCS - 1)) &&
|
||||
(preamble == DOT11_BE) &&
|
||||
(ppdu_type == HAL_RX_TYPE_MU_OFDMA)));
|
||||
DP_STATS_INCC(peer,
|
||||
rx.rx_mu_be[TXRX_TYPE_MU_OFDMA].ppdu.mcs_count[mcs],
|
||||
rx.rx_mu_be[TXRX_TYPE_MU_OFDMA].mcs_count[mcs],
|
||||
1, ((mcs < (MAX_MCS - 1)) &&
|
||||
(preamble == DOT11_BE) &&
|
||||
(ppdu_type == HAL_RX_TYPE_MU_OFDMA)));
|
||||
DP_STATS_INCC(peer,
|
||||
rx.rx_mu_be[TXRX_TYPE_MU_MIMO].ppdu.mcs_count[MAX_MCS - 1],
|
||||
rx.rx_mu_be[TXRX_TYPE_MU_MIMO].mcs_count[MAX_MCS - 1],
|
||||
1, ((mcs >= (MAX_MCS - 1)) &&
|
||||
(preamble == DOT11_BE) &&
|
||||
(ppdu_type == HAL_RX_TYPE_MU_MIMO)));
|
||||
DP_STATS_INCC(peer,
|
||||
rx.rx_mu_be[TXRX_TYPE_MU_MIMO].ppdu.mcs_count[mc],
|
||||
rx.rx_mu_be[TXRX_TYPE_MU_MIMO].mcs_count[mcs],
|
||||
1, ((mcs < (MAX_MCS - 1)) &&
|
||||
(preamble == DOT11_BE) &&
|
||||
(ppdu_type == HAL_RX_TYPE_MU_MIMO)));
|
||||
}
|
||||
|
||||
void
|
||||
dp_mon_populate_ppdu_info_2_0(struct hal_rx_ppdu_info *hal_ppdu_info,
|
||||
struct cdp_rx_indication_ppdu *ppdu)
|
||||
dp_rx_mon_populate_ppdu_info_2_0(struct hal_rx_ppdu_info *hal_ppdu_info,
|
||||
struct cdp_rx_indication_ppdu *ppdu)
|
||||
{
|
||||
ppdu->punc_bw = hal_ppdu_info->rx_status.punctured_bw;
|
||||
}
|
||||
#else
|
||||
void dp_mon_rx_stats_update_2_0(struct dp_peer *peer,
|
||||
void dp_rx_mon_stats_update_2_0(struct dp_peer *peer,
|
||||
struct cdp_rx_indication_ppdu *ppdu,
|
||||
struct cdp_rx_stats_ppdu_user *ppdu_user)
|
||||
{
|
||||
@@ -271,8 +271,8 @@ void dp_mon_rx_stats_update_2_0(struct dp_peer *peer,
|
||||
}
|
||||
|
||||
void
|
||||
dp_mon_populate_ppdu_info_2_0(struct hal_rx_ppdu_info *hal_ppdu_info,
|
||||
struct cdp_rx_indication_ppdu *ppdu)
|
||||
dp_rx_mon_populate_ppdu_info_2_0(struct hal_rx_ppdu_info *hal_ppdu_info,
|
||||
struct cdp_rx_indication_ppdu *ppdu)
|
||||
{
|
||||
ppdu->punc_bw = 0;
|
||||
}
|
||||
|
@@ -87,4 +87,62 @@ void dp_rx_mon_process_status_tlv(struct dp_soc *soc,
|
||||
struct hal_mon_desc *mon_ring_desc,
|
||||
qdf_dma_addr_t addr);
|
||||
|
||||
/**
|
||||
* dp_rx_mon_stats_update_2_0 () - update rx stats
|
||||
*
|
||||
* @peer: peer handle
|
||||
* @ppdu: Rx PPDU status metadata object
|
||||
* @ppdu_user: Rx PPDU user status metadata object
|
||||
*
|
||||
* Return: Void
|
||||
*/
|
||||
void dp_rx_mon_stats_update_2_0(struct dp_peer *peer,
|
||||
struct cdp_rx_indication_ppdu *ppdu,
|
||||
struct cdp_rx_stats_ppdu_user *ppdu_user);
|
||||
|
||||
/**
|
||||
* dp_rx_mon_populate_ppdu_usr_info_2_0 () - Populate ppdu user info
|
||||
*
|
||||
* @rx_user_status: Rx user status
|
||||
* @ppdu_user: ppdu user metadata
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
void
|
||||
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
|
||||
*
|
||||
* @hal_ppdu_info: HAL PPDU info
|
||||
* @ppdu: Rx PPDU status metadata object
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
void
|
||||
dp_rx_mon_populate_ppdu_info_2_0(struct hal_rx_ppdu_info *hal_ppdu_info,
|
||||
struct cdp_rx_indication_ppdu *ppdu);
|
||||
|
||||
#if !defined(DISABLE_MON_CONFIG)
|
||||
/*
|
||||
* dp_rx_mon_process_2_0 () - Process Rx monitor interrupt
|
||||
*
|
||||
* @soc: DP soc handle
|
||||
* @int_ctx: Interrupt context
|
||||
* @mac_id: LMAC id
|
||||
* @quota: quota to reap
|
||||
*/
|
||||
uint32_t
|
||||
dp_rx_mon_process_2_0(struct dp_soc *soc, struct dp_intr *int_ctx,
|
||||
uint32_t mac_id, uint32_t quota);
|
||||
#else
|
||||
static uint32_t
|
||||
dp_rx_mon_process_2_0(struct dp_soc *soc, struct dp_intr *int_ctx,
|
||||
uint32_t mac_id, uint32_t quota)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* DISABLE_MON_CONFIG */
|
||||
#endif /* _DP_RX_MON_2_0_H_ */
|
||||
|
@@ -4707,23 +4707,13 @@ QDF_STATUS dp_mon_pdev_init(struct dp_pdev *pdev)
|
||||
mon_ops->rx_mon_desc_pool_init(pdev);
|
||||
|
||||
/* allocate buffers and replenish the monitor RxDMA ring */
|
||||
if (mon_ops->rx_mon_buffers_alloc) {
|
||||
if (mon_ops->rx_mon_buffers_alloc(pdev)) {
|
||||
dp_mon_err("%pK: rx mon buffers alloc failed", pdev);
|
||||
goto fail2;
|
||||
}
|
||||
}
|
||||
if (mon_ops->rx_mon_buffers_alloc)
|
||||
mon_ops->rx_mon_buffers_alloc(pdev);
|
||||
|
||||
dp_tx_ppdu_stats_attach(pdev);
|
||||
mon_pdev->is_dp_mon_pdev_initialized = true;
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
fail2:
|
||||
if (mon_ops->rx_mon_desc_pool_deinit)
|
||||
mon_ops->rx_mon_desc_pool_deinit(pdev);
|
||||
|
||||
if (mon_ops->mon_rings_deinit)
|
||||
mon_ops->mon_rings_deinit(pdev);
|
||||
fail1:
|
||||
dp_htt_ppdu_stats_detach(pdev);
|
||||
fail0:
|
||||
|
@@ -291,6 +291,7 @@ dp_mon_ht2_rx_ring_cfg(struct dp_soc *soc,
|
||||
soc->rxdma_mon_dst_ring[lmac_id].hal_srng;
|
||||
hal_ring_type = RXDMA_MONITOR_DST;
|
||||
ring_buf_size = RX_DATA_BUFFER_SIZE;
|
||||
break;
|
||||
default:
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
Reference in New Issue
Block a user