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:
aloksing
2021-06-14 20:12:04 +05:30
committad av Madan Koyyalamudi
förälder 53fe7000ba
incheckning c60b9619a3
24 ändrade filer med 2719 tillägg och 1971 borttagningar

Visa fil

@@ -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