qcacmn: Conditionally compile monitor related features and issue fixes
PATCH[7/7]: This patch consists following changes: -Conditionally compile all monitor destination ring related code Macro used QCA_MONITOR_PKT_SUPPORT -Add QCA_ENHANCED_STATS_SUPPORT macro to conditionally compile enhanced stats support -Use QCA_MCOPY_SUPPORT and QCA_TX_CAPTURE_SUPPORT macros to conditionally compile MCOPY and Tx capture features respectively -Use QCN_IE macro to conditionally compile BPR feature -Use QCA_ADVANCE_MON_FILTER_SUPPORT macro to conditionally compile advance monitor filter feature -Fix vdev attach issue for special and smart monitor vap -Fix status ring initialization issue. Change-Id: I0deaa28a9a54bf34b0f41e6dd510fdd8d4992db2 CRs-Fixed: 2983780
This commit is contained in:

committad av
Madan Koyyalamudi

förälder
53fe7000ba
incheckning
c60b9619a3
@@ -35,6 +35,7 @@
|
||||
#ifdef FEATURE_PERPKT_INFO
|
||||
#include "dp_ratetable.h"
|
||||
#endif
|
||||
#include <qdf_module.h>
|
||||
|
||||
#define HTT_TLV_HDR_LEN HTT_T2H_EXT_STATS_CONF_TLV_HDR_SIZE
|
||||
|
||||
@@ -803,6 +804,8 @@ fail1:
|
||||
qdf_nbuf_free(htt_msg);
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
qdf_export_symbol(htt_h2t_full_mon_cfg);
|
||||
#else
|
||||
int htt_h2t_full_mon_cfg(struct htt_soc *htt_soc,
|
||||
uint8_t pdev_id,
|
||||
@@ -811,6 +814,7 @@ int htt_h2t_full_mon_cfg(struct htt_soc *htt_soc,
|
||||
return 0;
|
||||
}
|
||||
|
||||
qdf_export_symbol(htt_h2t_full_mon_cfg);
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -1545,6 +1549,8 @@ fail0:
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
qdf_export_symbol(htt_h2t_rx_ring_cfg);
|
||||
|
||||
#if defined(HTT_STATS_ENABLE)
|
||||
static inline QDF_STATUS dp_send_htt_stat_resp(struct htt_stats_context *htt_stats,
|
||||
struct dp_soc *soc, qdf_nbuf_t htt_msg)
|
||||
@@ -2096,6 +2102,52 @@ dp_get_srng_ring_state_from_hal(struct dp_soc *soc,
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
#ifdef QCA_MONITOR_PKT_SUPPORT
|
||||
static void
|
||||
dp_queue_mon_ring_stats(struct dp_pdev *pdev,
|
||||
int lmac_id, uint32_t *num_srng,
|
||||
struct dp_soc_srngs_state *soc_srngs_state)
|
||||
{
|
||||
QDF_STATUS status;
|
||||
|
||||
if (pdev->soc->wlan_cfg_ctx->rxdma1_enable) {
|
||||
status = dp_get_srng_ring_state_from_hal
|
||||
(pdev->soc, pdev,
|
||||
&pdev->soc->rxdma_mon_buf_ring[lmac_id],
|
||||
RXDMA_MONITOR_BUF,
|
||||
&soc_srngs_state->ring_state[*num_srng]);
|
||||
|
||||
if (status == QDF_STATUS_SUCCESS)
|
||||
qdf_assert_always(++(*num_srng) < DP_MAX_SRNGS);
|
||||
|
||||
status = dp_get_srng_ring_state_from_hal
|
||||
(pdev->soc, pdev,
|
||||
&pdev->soc->rxdma_mon_dst_ring[lmac_id],
|
||||
RXDMA_MONITOR_DST,
|
||||
&soc_srngs_state->ring_state[*num_srng]);
|
||||
|
||||
if (status == QDF_STATUS_SUCCESS)
|
||||
qdf_assert_always(++(*num_srng) < DP_MAX_SRNGS);
|
||||
|
||||
status = dp_get_srng_ring_state_from_hal
|
||||
(pdev->soc, pdev,
|
||||
&pdev->soc->rxdma_mon_desc_ring[lmac_id],
|
||||
RXDMA_MONITOR_DESC,
|
||||
&soc_srngs_state->ring_state[*num_srng]);
|
||||
|
||||
if (status == QDF_STATUS_SUCCESS)
|
||||
qdf_assert_always(++(*num_srng) < DP_MAX_SRNGS);
|
||||
}
|
||||
}
|
||||
#else
|
||||
static void
|
||||
dp_queue_mon_ring_stats(struct dp_pdev *pdev,
|
||||
int lmac_id, uint32_t *num_srng,
|
||||
struct dp_soc_srngs_state *soc_srngs_state)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* dp_queue_srng_ring_stats(): Print pdev hal level ring stats
|
||||
* @pdev: DP_pdev handle
|
||||
@@ -2258,34 +2310,8 @@ static void dp_queue_ring_stats(struct dp_pdev *pdev)
|
||||
lmac_id = dp_get_lmac_id_for_pdev_id(pdev->soc,
|
||||
mac_id, pdev->pdev_id);
|
||||
|
||||
if (pdev->soc->wlan_cfg_ctx->rxdma1_enable) {
|
||||
status = dp_get_srng_ring_state_from_hal
|
||||
(pdev->soc, pdev,
|
||||
&pdev->soc->rxdma_mon_buf_ring[lmac_id],
|
||||
RXDMA_MONITOR_BUF,
|
||||
&soc_srngs_state->ring_state[j]);
|
||||
|
||||
if (status == QDF_STATUS_SUCCESS)
|
||||
qdf_assert_always(++j < DP_MAX_SRNGS);
|
||||
|
||||
status = dp_get_srng_ring_state_from_hal
|
||||
(pdev->soc, pdev,
|
||||
&pdev->soc->rxdma_mon_dst_ring[lmac_id],
|
||||
RXDMA_MONITOR_DST,
|
||||
&soc_srngs_state->ring_state[j]);
|
||||
|
||||
if (status == QDF_STATUS_SUCCESS)
|
||||
qdf_assert_always(++j < DP_MAX_SRNGS);
|
||||
|
||||
status = dp_get_srng_ring_state_from_hal
|
||||
(pdev->soc, pdev,
|
||||
&pdev->soc->rxdma_mon_desc_ring[lmac_id],
|
||||
RXDMA_MONITOR_DESC,
|
||||
&soc_srngs_state->ring_state[j]);
|
||||
|
||||
if (status == QDF_STATUS_SUCCESS)
|
||||
qdf_assert_always(++j < DP_MAX_SRNGS);
|
||||
}
|
||||
dp_queue_mon_ring_stats(pdev, lmac_id, &j,
|
||||
soc_srngs_state);
|
||||
|
||||
status = dp_get_srng_ring_state_from_hal
|
||||
(pdev->soc, pdev,
|
||||
@@ -3288,6 +3314,8 @@ QDF_STATUS dp_h2t_cfg_stats_msg_send(struct dp_pdev *pdev,
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
qdf_export_symbol(dp_h2t_cfg_stats_msg_send);
|
||||
#endif
|
||||
|
||||
void
|
||||
|
Referens i nytt ärende
Block a user