qcacmn: Change BE monitor soc and pdev assignment with macro
Change BE monitor soc and pdev assignment with macro Change-Id: I0bf47391dea37461cc8356cf3b41c20af0516662 CRs-Fixed: 3096222
这个提交包含在:
@@ -23,6 +23,7 @@
|
||||
#include "dp_be.h"
|
||||
#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
|
||||
@@ -81,7 +82,7 @@ qdf_size_t dp_get_context_size_be(enum dp_context_type context_type)
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef QCA_MONITOR_2_0_SUPPORT
|
||||
#if !defined(DISABLE_MON_CONFIG) && defined(QCA_MONITOR_2_0_SUPPORT)
|
||||
qdf_size_t dp_mon_get_context_size_be(enum dp_context_type context_type)
|
||||
{
|
||||
switch (context_type) {
|
||||
|
@@ -301,7 +301,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
|
||||
|
||||
/**
|
||||
@@ -315,6 +314,18 @@ static inline struct dp_soc_be *dp_get_be_soc_from_dp_soc(struct dp_soc *soc)
|
||||
return (struct dp_soc_be *)soc;
|
||||
}
|
||||
|
||||
/**
|
||||
* dp_get_be_mon_soc_from_dp_mon_soc() - get dp_mon_soc_be from dp_mon_soc
|
||||
* @soc: dp_mon_soc pointer
|
||||
*
|
||||
* Return: dp_mon_soc_be pointer
|
||||
*/
|
||||
static inline
|
||||
struct dp_mon_soc_be *dp_get_be_mon_soc_from_dp_mon_soc(struct dp_mon_soc *soc)
|
||||
{
|
||||
return (struct dp_mon_soc_be *)soc;
|
||||
}
|
||||
|
||||
#ifdef WLAN_MLO_MULTI_CHIP
|
||||
typedef struct dp_mlo_ctxt *dp_mld_peer_hash_obj_t;
|
||||
|
||||
@@ -415,6 +426,20 @@ struct dp_pdev_be *dp_get_be_pdev_from_dp_pdev(struct dp_pdev *pdev)
|
||||
return (struct dp_pdev_be *)pdev;
|
||||
}
|
||||
|
||||
#ifdef QCA_MONITOR_2_0_SUPPORT
|
||||
/**
|
||||
* dp_get_be_mon_pdev_from_dp_mon_pdev() - get dp_mon_pdev_be from dp_mon_pdev
|
||||
* @pdev: dp_mon_pdev pointer
|
||||
*
|
||||
* Return: dp_mon_pdev_be pointer
|
||||
*/
|
||||
static inline
|
||||
struct dp_mon_pdev_be *dp_get_be_mon_pdev_from_dp_mon_pdev(struct dp_mon_pdev *mon_pdev)
|
||||
{
|
||||
return (struct dp_mon_pdev_be *)mon_pdev;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* dp_get_be_vdev_from_dp_vdev() - get dp_vdev_be from dp_vdev
|
||||
* @vdev: dp_vdev pointer
|
||||
|
@@ -306,11 +306,9 @@ void dp_vdev_set_monitor_mode_buf_rings_2_0(struct dp_pdev *pdev)
|
||||
int tx_mon_max_entries, rx_mon_max_entries;
|
||||
struct wlan_cfg_dp_soc_ctxt *soc_cfg_ctx;
|
||||
struct dp_soc *soc = pdev->soc;
|
||||
struct dp_mon_soc *mon_soc;
|
||||
struct dp_mon_soc_be *mon_soc_be = NULL;
|
||||
struct dp_mon_soc *mon_soc = soc->monitor_soc;
|
||||
struct dp_mon_soc_be *mon_soc_be = dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
|
||||
mon_soc = soc->monitor_soc;
|
||||
mon_soc_be = (struct dp_mon_soc_be *)mon_soc;
|
||||
if (!mon_soc_be) {
|
||||
dp_mon_err("DP MON SOC is NULL");
|
||||
return;
|
||||
@@ -426,8 +424,8 @@ dp_set_bpr_enable_2_0(struct dp_pdev *pdev, int val)
|
||||
static
|
||||
QDF_STATUS dp_mon_soc_htt_srng_setup_2_0(struct dp_soc *soc)
|
||||
{
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
struct dp_mon_soc_be *mon_soc = be_soc->monitor_soc_be;
|
||||
struct dp_mon_soc *mon_soc = soc->monitor_soc;
|
||||
struct dp_mon_soc_be *mon_soc_be = dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
|
||||
QDF_STATUS status;
|
||||
|
||||
@@ -441,7 +439,7 @@ QDF_STATUS dp_mon_soc_htt_srng_setup_2_0(struct dp_soc *soc)
|
||||
}
|
||||
|
||||
status = htt_srng_setup(soc->htt_handle, 0,
|
||||
mon_soc->tx_mon_buf_ring.hal_srng,
|
||||
mon_soc_be->tx_mon_buf_ring.hal_srng,
|
||||
TX_MONITOR_BUF);
|
||||
|
||||
if (status != QDF_STATUS_SUCCESS) {
|
||||
@@ -455,11 +453,11 @@ QDF_STATUS dp_mon_soc_htt_srng_setup_2_0(struct dp_soc *soc)
|
||||
static
|
||||
QDF_STATUS dp_mon_pdev_htt_srng_setup_2_0(struct dp_soc *soc,
|
||||
struct dp_pdev *pdev,
|
||||
int mac_id,
|
||||
int mac_for_pdev)
|
||||
int mac_id,
|
||||
int mac_for_pdev)
|
||||
{
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
struct dp_mon_soc_be *mon_soc = be_soc->monitor_soc_be;
|
||||
struct dp_mon_soc *mon_soc = soc->monitor_soc;
|
||||
struct dp_mon_soc_be *mon_soc_be = dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
QDF_STATUS status;
|
||||
|
||||
status = htt_srng_setup(soc->htt_handle, mac_for_pdev,
|
||||
@@ -472,7 +470,7 @@ QDF_STATUS dp_mon_pdev_htt_srng_setup_2_0(struct dp_soc *soc,
|
||||
}
|
||||
|
||||
status = htt_srng_setup(soc->htt_handle, mac_for_pdev,
|
||||
mon_soc->tx_mon_dst_ring[mac_id].hal_srng,
|
||||
mon_soc_be->tx_mon_dst_ring[mac_id].hal_srng,
|
||||
TX_MONITOR_DST);
|
||||
|
||||
if (status != QDF_STATUS_SUCCESS) {
|
||||
@@ -556,10 +554,10 @@ dp_rx_mon_process_2_0(struct dp_soc *soc, struct dp_intr *int_ctx,
|
||||
static
|
||||
QDF_STATUS dp_mon_soc_detach_2_0(struct dp_soc *soc)
|
||||
{
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
struct dp_mon_soc_be *mon_soc = be_soc->monitor_soc_be;
|
||||
struct dp_mon_soc *mon_soc = soc->monitor_soc;
|
||||
struct dp_mon_soc_be *mon_soc_be = dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
|
||||
if (!mon_soc) {
|
||||
if (!mon_soc_be) {
|
||||
dp_mon_err("DP MON SOC NULL");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
@@ -569,7 +567,7 @@ QDF_STATUS dp_mon_soc_detach_2_0(struct dp_soc *soc)
|
||||
dp_tx_mon_buf_desc_pool_free(soc);
|
||||
dp_rx_mon_buf_desc_pool_free(soc);
|
||||
dp_srng_free(soc, &soc->rxdma_mon_buf_ring[0]);
|
||||
dp_srng_free(soc, &mon_soc->tx_mon_buf_ring);
|
||||
dp_srng_free(soc, &mon_soc_be->tx_mon_buf_ring);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
@@ -577,14 +575,13 @@ QDF_STATUS dp_mon_soc_detach_2_0(struct dp_soc *soc)
|
||||
static
|
||||
QDF_STATUS dp_mon_soc_attach_2_0(struct dp_soc *soc)
|
||||
{
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
struct dp_mon_soc_be *mon_soc_be = NULL;
|
||||
struct dp_mon_soc *mon_soc = soc->monitor_soc;
|
||||
int entries;
|
||||
struct wlan_cfg_dp_soc_ctxt *soc_cfg_ctx;
|
||||
|
||||
soc_cfg_ctx = soc->wlan_cfg_ctx;
|
||||
mon_soc_be = (struct dp_mon_soc_be *)mon_soc;
|
||||
mon_soc_be = dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
if (!mon_soc_be) {
|
||||
dp_mon_err("DP MON SOC is NULL");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
@@ -594,6 +591,7 @@ QDF_STATUS dp_mon_soc_attach_2_0(struct dp_soc *soc)
|
||||
mon_soc_be->rx_mon_ring_fill_level = DP_MON_RING_FILL_LEVEL_DEFAULT;
|
||||
|
||||
entries = wlan_cfg_get_dp_soc_rx_mon_buf_ring_size(soc_cfg_ctx);
|
||||
qdf_print("%s:%d rx mon buf entries: %d", __func__, __LINE__, entries);
|
||||
if (dp_srng_alloc(soc, &soc->rxdma_mon_buf_ring[0],
|
||||
RXDMA_MONITOR_BUF, entries, 0)) {
|
||||
dp_mon_err("%pK: " RNG_ERR "rx_mon_buf_ring", soc);
|
||||
@@ -601,7 +599,8 @@ QDF_STATUS dp_mon_soc_attach_2_0(struct dp_soc *soc)
|
||||
}
|
||||
|
||||
entries = wlan_cfg_get_dp_soc_tx_mon_buf_ring_size(soc_cfg_ctx);
|
||||
if (dp_srng_alloc(soc, &be_soc->monitor_soc_be->tx_mon_buf_ring,
|
||||
qdf_print("%s:%d tx mon buf entries: %d", __func__, __LINE__, entries);
|
||||
if (dp_srng_alloc(soc, &mon_soc_be->tx_mon_buf_ring,
|
||||
TX_MONITOR_BUF, entries, 0)) {
|
||||
dp_mon_err("%pK: " RNG_ERR "tx_mon_buf_ring", soc);
|
||||
goto fail;
|
||||
@@ -663,8 +662,8 @@ void dp_pdev_mon_rings_deinit_2_0(struct dp_pdev *pdev)
|
||||
{
|
||||
int mac_id = 0;
|
||||
struct dp_soc *soc = pdev->soc;
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
struct dp_mon_soc_be *mon_soc = be_soc->monitor_soc_be;
|
||||
struct dp_mon_soc *mon_soc = soc->monitor_soc;
|
||||
struct dp_mon_soc_be *mon_soc_be = dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
|
||||
for (mac_id = 0; mac_id < DP_NUM_MACS_PER_PDEV; mac_id++) {
|
||||
int lmac_id = dp_get_lmac_id_for_pdev_id(soc, mac_id,
|
||||
@@ -672,7 +671,7 @@ void dp_pdev_mon_rings_deinit_2_0(struct dp_pdev *pdev)
|
||||
|
||||
dp_srng_deinit(soc, &soc->rxdma_mon_dst_ring[lmac_id],
|
||||
RXDMA_MONITOR_DST, 0);
|
||||
dp_srng_deinit(soc, &mon_soc->tx_mon_dst_ring[lmac_id],
|
||||
dp_srng_deinit(soc, &mon_soc_be->tx_mon_dst_ring[lmac_id],
|
||||
TX_MONITOR_DST, 0);
|
||||
}
|
||||
}
|
||||
@@ -682,8 +681,8 @@ QDF_STATUS dp_pdev_mon_rings_init_2_0(struct dp_pdev *pdev)
|
||||
{
|
||||
struct dp_soc *soc = pdev->soc;
|
||||
int mac_id = 0;
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
struct dp_mon_soc_be *mon_soc = be_soc->monitor_soc_be;
|
||||
struct dp_mon_soc *mon_soc = soc->monitor_soc;
|
||||
struct dp_mon_soc_be *mon_soc_be = dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
|
||||
for (mac_id = 0; mac_id < DP_NUM_MACS_PER_PDEV; mac_id++) {
|
||||
int lmac_id = dp_get_lmac_id_for_pdev_id(soc, mac_id,
|
||||
@@ -695,7 +694,7 @@ QDF_STATUS dp_pdev_mon_rings_init_2_0(struct dp_pdev *pdev)
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (dp_srng_init(soc, &mon_soc->tx_mon_dst_ring[lmac_id],
|
||||
if (dp_srng_init(soc, &mon_soc_be->tx_mon_dst_ring[lmac_id],
|
||||
TX_MONITOR_DST, 0, lmac_id)) {
|
||||
dp_mon_err("%pK: " RNG_ERR "tx_mon_dst_ring", soc);
|
||||
goto fail;
|
||||
@@ -713,15 +712,15 @@ void dp_pdev_mon_rings_free_2_0(struct dp_pdev *pdev)
|
||||
{
|
||||
int mac_id = 0;
|
||||
struct dp_soc *soc = pdev->soc;
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
struct dp_mon_soc_be *mon_soc = be_soc->monitor_soc_be;
|
||||
struct dp_mon_soc *mon_soc = soc->monitor_soc;
|
||||
struct dp_mon_soc_be *mon_soc_be = dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
|
||||
for (mac_id = 0; mac_id < DP_NUM_MACS_PER_PDEV; mac_id++) {
|
||||
int lmac_id = dp_get_lmac_id_for_pdev_id(soc, mac_id,
|
||||
pdev->pdev_id);
|
||||
|
||||
dp_srng_free(soc, &soc->rxdma_mon_dst_ring[lmac_id]);
|
||||
dp_srng_free(soc, &mon_soc->tx_mon_dst_ring[lmac_id]);
|
||||
dp_srng_free(soc, &mon_soc_be->tx_mon_dst_ring[lmac_id]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -732,8 +731,8 @@ QDF_STATUS dp_pdev_mon_rings_alloc_2_0(struct dp_pdev *pdev)
|
||||
int mac_id = 0;
|
||||
int entries;
|
||||
struct wlan_cfg_dp_pdev_ctxt *pdev_cfg_ctx;
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
struct dp_mon_soc_be *mon_soc = be_soc->monitor_soc_be;
|
||||
struct dp_mon_soc *mon_soc = soc->monitor_soc;
|
||||
struct dp_mon_soc_be *mon_soc_be = dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
|
||||
pdev_cfg_ctx = pdev->wlan_cfg_ctx;
|
||||
|
||||
@@ -749,7 +748,7 @@ QDF_STATUS dp_pdev_mon_rings_alloc_2_0(struct dp_pdev *pdev)
|
||||
}
|
||||
|
||||
entries = wlan_cfg_get_dma_tx_mon_dest_ring_size(pdev_cfg_ctx);
|
||||
if (dp_srng_alloc(soc, &mon_soc->tx_mon_dst_ring[lmac_id],
|
||||
if (dp_srng_alloc(soc, &mon_soc_be->tx_mon_dst_ring[lmac_id],
|
||||
TX_MONITOR_DST, entries, 0)) {
|
||||
dp_err("%pK: " RNG_ERR "tx_mon_dst_ring", pdev);
|
||||
goto fail;
|
||||
@@ -770,10 +769,10 @@ void dp_mon_pdev_free_2_0(struct dp_pdev *pdev)
|
||||
static
|
||||
QDF_STATUS dp_mon_pdev_alloc_2_0(struct dp_pdev *pdev)
|
||||
{
|
||||
struct dp_mon_pdev_be *mon_pdev_be = NULL;
|
||||
struct dp_pdev_be *be_pdev = dp_get_be_pdev_from_dp_pdev(pdev);
|
||||
struct dp_mon_pdev *mon_pdev = pdev->monitor_pdev;
|
||||
struct dp_mon_pdev_be *mon_pdev_be =
|
||||
dp_get_be_mon_pdev_from_dp_mon_pdev(mon_pdev);
|
||||
|
||||
mon_pdev_be = be_pdev->monitor_pdev_be;
|
||||
if (!mon_pdev_be) {
|
||||
dp_mon_err("DP MON PDEV is NULL");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
|
@@ -38,18 +38,16 @@ void dp_mon_filter_dealloc_2_0(struct dp_pdev *pdev)
|
||||
{
|
||||
enum dp_mon_filter_mode mode;
|
||||
struct dp_mon_filter_be **mon_filter = NULL;
|
||||
struct dp_mon_pdev *mon_pdev;
|
||||
struct dp_mon_pdev_be *mon_pdev_be;
|
||||
struct dp_mon_pdev *mon_pdev = pdev->monitor_pdev;
|
||||
struct dp_mon_pdev_be *mon_pdev_be =
|
||||
dp_get_be_mon_pdev_from_dp_mon_pdev(mon_pdev);
|
||||
|
||||
if (!pdev) {
|
||||
dp_mon_filter_err("Monitor pdev Context is null");
|
||||
return;
|
||||
}
|
||||
|
||||
mon_pdev = pdev->monitor_pdev;
|
||||
mon_pdev_be = (struct dp_mon_pdev_be *)mon_pdev;
|
||||
mon_filter = mon_pdev_be->filter_be;
|
||||
|
||||
if (!mon_filter) {
|
||||
dp_mon_filter_err("Found NULL memmory for the Monitor filter");
|
||||
return;
|
||||
@@ -71,15 +69,15 @@ QDF_STATUS dp_mon_filter_alloc_2_0(struct dp_pdev *pdev)
|
||||
{
|
||||
struct dp_mon_filter_be **mon_filter = NULL;
|
||||
enum dp_mon_filter_mode mode;
|
||||
struct dp_mon_pdev *mon_pdev;
|
||||
struct dp_mon_pdev_be *mon_pdev_be;
|
||||
struct dp_mon_pdev *mon_pdev = pdev->monitor_pdev;
|
||||
struct dp_mon_pdev_be *mon_pdev_be =
|
||||
dp_get_be_mon_pdev_from_dp_mon_pdev(mon_pdev);
|
||||
|
||||
if (!pdev) {
|
||||
dp_mon_filter_err("pdev Context is null");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
mon_pdev = pdev->monitor_pdev;
|
||||
mon_filter = (struct dp_mon_filter_be **)qdf_mem_malloc(
|
||||
(sizeof(struct dp_mon_filter_be *) *
|
||||
DP_MON_FILTER_MAX_MODE));
|
||||
@@ -91,7 +89,6 @@ QDF_STATUS dp_mon_filter_alloc_2_0(struct dp_pdev *pdev)
|
||||
qdf_mem_zero(mon_filter,
|
||||
sizeof(struct dp_mon_filter_be *) * DP_MON_FILTER_MAX_MODE);
|
||||
|
||||
mon_pdev_be = (struct dp_mon_pdev_be *)mon_pdev;
|
||||
for (mode = 0; mode < DP_MON_FILTER_MAX_MODE; mode++) {
|
||||
mon_filter[mode] = qdf_mem_malloc(sizeof(struct dp_mon_filter_be) *
|
||||
DP_MON_FILTER_SRNG_TYPE_MAX);
|
||||
@@ -1035,8 +1032,9 @@ void dp_mon_filter_setup_tx_mon_mode_2_0(struct dp_pdev *pdev)
|
||||
enum dp_mon_filter_mode mode = DP_MON_FILTER_MONITOR_MODE;
|
||||
enum dp_mon_filter_srng_type srng_type =
|
||||
DP_MON_FILTER_SRNG_TYPE_TXMON_DEST;
|
||||
struct dp_mon_pdev *mon_pdev;
|
||||
struct dp_mon_pdev_be *mon_pdev_be;
|
||||
struct dp_mon_pdev *mon_pdev = pdev->monitor_pdev;
|
||||
struct dp_mon_pdev_be *mon_pdev_be =
|
||||
dp_get_be_mon_pdev_from_dp_mon_pdev(mon_pdev);
|
||||
|
||||
if (!pdev) {
|
||||
dp_mon_filter_err("pdev Context is null");
|
||||
@@ -1049,8 +1047,6 @@ void dp_mon_filter_setup_tx_mon_mode_2_0(struct dp_pdev *pdev)
|
||||
return;
|
||||
}
|
||||
|
||||
mon_pdev = pdev->monitor_pdev;
|
||||
mon_pdev_be = (struct dp_mon_pdev_be *)mon_pdev;
|
||||
filter.tx_valid = true;
|
||||
mon_pdev_be->filter_be[mode][srng_type] = filter;
|
||||
}
|
||||
@@ -1066,6 +1062,7 @@ void dp_mon_filter_reset_tx_mon_mode_2_0(struct dp_pdev *pdev)
|
||||
struct dp_mon_soc *mon_soc;
|
||||
struct dp_mon_pdev_be *mon_pdev_be;
|
||||
struct dp_mon_soc_be *mon_soc_be = NULL;
|
||||
struct dp_mon_pdev_be *mon_pdev_be = NULL;
|
||||
|
||||
if (!pdev) {
|
||||
dp_mon_filter_err("pdev Context is null");
|
||||
@@ -1079,9 +1076,9 @@ void dp_mon_filter_reset_tx_mon_mode_2_0(struct dp_pdev *pdev)
|
||||
}
|
||||
|
||||
mon_pdev = pdev->monitor_pdev;
|
||||
mon_pdev_be = dp_get_be_mon_pdev_from_dp_mon_pdev(mon_pdev);
|
||||
mon_soc = soc->monitor_soc;
|
||||
mon_pdev_be = (struct dp_mon_pdev_be *)mon_pdev;
|
||||
mon_soc_be = (struct dp_mon_soc_be *)mon_soc;
|
||||
mon_soc_be = dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
mon_soc_be->tx_mon_ring_fill_level = DP_MON_RING_FILL_LEVEL_DEFAULT;
|
||||
mon_soc_be->rx_mon_ring_fill_level = DP_MON_RING_FILL_LEVEL_DEFAULT;
|
||||
|
||||
@@ -1210,8 +1207,9 @@ void dp_mon_filter_setup_rx_pkt_log_full_2_0(struct dp_pdev *pdev)
|
||||
enum dp_mon_filter_mode mode = DP_MON_FILTER_PKT_LOG_FULL_MODE;
|
||||
enum dp_mon_filter_srng_type srng_type =
|
||||
DP_MON_FILTER_SRNG_TYPE_RXDMA_MONITOR_STATUS;
|
||||
struct dp_pdev_be *pdev_be = dp_get_be_pdev_from_dp_pdev(pdev);
|
||||
struct dp_mon_pdev_be *mon_pdev_be;
|
||||
struct dp_mon_pdev *mon_pdev = pdev->monitor_pdev;
|
||||
struct dp_mon_pdev_be *mon_pdev_be =
|
||||
dp_get_be_mon_pdev_from_dp_mon_pdev(mon_pdev);
|
||||
struct htt_rx_ring_tlv_filter *rx_tlv_filter =
|
||||
&filter.rx_tlv_filter.tlv_filter;
|
||||
|
||||
@@ -1220,7 +1218,6 @@ void dp_mon_filter_setup_rx_pkt_log_full_2_0(struct dp_pdev *pdev)
|
||||
return;
|
||||
}
|
||||
|
||||
mon_pdev_be = pdev_be->monitor_pdev_be;
|
||||
/* Enabled the filter */
|
||||
filter.rx_tlv_filter.valid = true;
|
||||
dp_mon_filter_set_status_cmn(&mon_pdev_be->mon_pdev,
|
||||
@@ -1243,16 +1240,15 @@ void dp_mon_filter_reset_rx_pkt_log_full_2_0(struct dp_pdev *pdev)
|
||||
enum dp_mon_filter_mode mode = DP_MON_FILTER_PKT_LOG_FULL_MODE;
|
||||
enum dp_mon_filter_srng_type srng_type =
|
||||
DP_MON_FILTER_SRNG_TYPE_RXDMA_MONITOR_STATUS;
|
||||
struct dp_pdev_be *pdev_be = dp_get_be_pdev_from_dp_pdev(pdev);
|
||||
struct dp_mon_pdev_be *mon_pdev_be;
|
||||
struct dp_mon_pdev *mon_pdev = pdev->monitor_pdev;
|
||||
struct dp_mon_pdev_be *mon_pdev_be =
|
||||
dp_get_be_mon_pdev_from_dp_mon_pdev(mon_pdev);
|
||||
|
||||
if (!pdev) {
|
||||
dp_mon_filter_err("pdev Context is null");
|
||||
return;
|
||||
}
|
||||
|
||||
mon_pdev_be = pdev_be->monitor_pdev_be;
|
||||
|
||||
mon_pdev_be->filter_be[mode][srng_type] = filter;
|
||||
}
|
||||
|
||||
@@ -1262,15 +1258,15 @@ void dp_mon_filter_setup_rx_pkt_log_lite_2_0(struct dp_pdev *pdev)
|
||||
enum dp_mon_filter_mode mode = DP_MON_FILTER_PKT_LOG_LITE_MODE;
|
||||
enum dp_mon_filter_srng_type srng_type =
|
||||
DP_MON_FILTER_SRNG_TYPE_RXDMA_MONITOR_STATUS;
|
||||
struct dp_pdev_be *pdev_be = dp_get_be_pdev_from_dp_pdev(pdev);
|
||||
struct dp_mon_pdev_be *mon_pdev_be;
|
||||
struct dp_mon_pdev *mon_pdev = pdev->monitor_pdev;
|
||||
struct dp_mon_pdev_be *mon_pdev_be =
|
||||
dp_get_be_mon_pdev_from_dp_mon_pdev(mon_pdev);
|
||||
|
||||
if (!pdev) {
|
||||
dp_mon_filter_err("pdev Context is null");
|
||||
return;
|
||||
}
|
||||
|
||||
mon_pdev_be = pdev_be->monitor_pdev_be;
|
||||
/* Enabled the filter */
|
||||
filter.rx_tlv_filter.valid = true;
|
||||
dp_mon_filter_set_status_cmn(&mon_pdev_be->mon_pdev,
|
||||
@@ -1286,17 +1282,15 @@ void dp_mon_filter_reset_rx_pkt_log_lite_2_0(struct dp_pdev *pdev)
|
||||
enum dp_mon_filter_mode mode = DP_MON_FILTER_PKT_LOG_LITE_MODE;
|
||||
enum dp_mon_filter_srng_type srng_type =
|
||||
DP_MON_FILTER_SRNG_TYPE_RXDMA_MONITOR_STATUS;
|
||||
struct dp_pdev_be *pdev_be = dp_get_be_pdev_from_dp_pdev(pdev);
|
||||
struct dp_mon_pdev_be *mon_pdev_be;
|
||||
struct dp_mon_pdev *mon_pdev = pdev->monitor_pdev;
|
||||
struct dp_mon_pdev_be *mon_pdev_be =
|
||||
dp_get_be_mon_pdev_from_dp_mon_pdev(mon_pdev);
|
||||
|
||||
if (!pdev) {
|
||||
dp_mon_filter_err("pdev Context is null");
|
||||
return;
|
||||
}
|
||||
|
||||
pdev_be = (struct dp_pdev_be *)pdev;
|
||||
mon_pdev_be = pdev_be->monitor_pdev_be;
|
||||
|
||||
mon_pdev_be->filter_be[mode][srng_type] = filter;
|
||||
}
|
||||
|
||||
@@ -1308,7 +1302,9 @@ 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_be *mon_pdev_be;
|
||||
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);
|
||||
|
||||
srng_type = ((soc->wlan_cfg_ctx->rxdma1_enable) ?
|
||||
DP_MON_FILTER_SRNG_TYPE_RXDMA_MON_BUF :
|
||||
@@ -1339,8 +1335,10 @@ void dp_mon_filter_setup_rx_pkt_log_cbf_2_0(struct dp_pdev *pdev)
|
||||
enum dp_mon_filter_mode mode = DP_MON_FILTER_PKT_LOG_CBF_MODE;
|
||||
enum dp_mon_filter_srng_type srng_type =
|
||||
DP_MON_FILTER_SRNG_TYPE_RXDMA_MONITOR_STATUS;
|
||||
struct dp_mon_pdev *mon_pdev = pdev->monitor_pdev;
|
||||
struct dp_mon_pdev_be *mon_pdev_be =
|
||||
dp_get_be_mon_pdev_from_dp_mon_pdev(mon_pdev);
|
||||
struct dp_pdev_be *pdev_be = dp_get_be_pdev_from_dp_pdev(pdev);
|
||||
struct dp_mon_pdev_be *mon_pdev_be;
|
||||
|
||||
if (!pdev) {
|
||||
dp_mon_filter_err("pdev Context is null");
|
||||
@@ -1353,11 +1351,10 @@ void dp_mon_filter_setup_rx_pkt_log_cbf_2_0(struct dp_pdev *pdev)
|
||||
return;
|
||||
}
|
||||
|
||||
mon_pdev_be = pdev_be->monitor_pdev_be;
|
||||
/* Enabled the filter */
|
||||
filter.rx_tlv_filter.valid = true;
|
||||
|
||||
dp_mon_filter_set_status_cbf(&pdev_be->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;
|
||||
|
||||
@@ -1377,7 +1374,9 @@ void dp_mon_filter_reset_rx_pktlog_cbf_2_0(struct dp_pdev *pdev)
|
||||
enum dp_mon_filter_mode mode = DP_MON_FILTER_PKT_LOG_CBF_MODE;
|
||||
enum dp_mon_filter_srng_type srng_type =
|
||||
DP_MON_FILTER_SRNG_TYPE_RXDMA_BUF;
|
||||
struct dp_mon_pdev_be *mon_pdev_be;
|
||||
struct dp_mon_pdev *mon_pdev = pdev->monitor_pdev;
|
||||
struct dp_mon_pdev_be *mon_pdev_be =
|
||||
dp_get_be_mon_pdev_from_dp_mon_pdev(mon_pdev);
|
||||
struct dp_pdev_be *pdev_be = dp_get_be_pdev_from_dp_pdev(pdev);
|
||||
|
||||
if (!pdev) {
|
||||
@@ -1392,7 +1391,6 @@ void dp_mon_filter_reset_rx_pktlog_cbf_2_0(struct dp_pdev *pdev)
|
||||
return;
|
||||
}
|
||||
|
||||
mon_pdev_be = pdev_be->monitor_pdev_be;
|
||||
/* Enabled the filter */
|
||||
filter.rx_tlv_filter.valid = true;
|
||||
|
||||
@@ -1408,16 +1406,16 @@ void dp_mon_filter_setup_pktlog_hybrid_2_0(struct dp_pdev *pdev)
|
||||
enum dp_mon_filter_mode mode = DP_MON_FILTER_PKT_LOG_HYBRID_MODE;
|
||||
enum dp_mon_filter_srng_type srng_type =
|
||||
DP_MON_FILTER_SRNG_TYPE_TXMON_DEST;
|
||||
struct dp_pdev_be *pdev_be = dp_get_be_pdev_from_dp_pdev(pdev);
|
||||
struct dp_mon_pdev_be *mon_pdev_be;
|
||||
struct htt_tx_ring_tlv_filter *tlv_filter = &filter.tx_tlv_filter;
|
||||
struct dp_mon_pdev *mon_pdev = pdev->monitor_pdev;
|
||||
struct dp_mon_pdev_be *mon_pdev_be =
|
||||
dp_get_be_mon_pdev_from_dp_mon_pdev(mon_pdev);
|
||||
|
||||
if (!pdev) {
|
||||
dp_mon_filter_err("pdev Context is null");
|
||||
return;
|
||||
}
|
||||
|
||||
mon_pdev_be = pdev_be->monitor_pdev_be;
|
||||
/* Enabled the filter */
|
||||
filter.tx_valid = true;
|
||||
|
||||
@@ -1446,16 +1444,15 @@ void dp_mon_filter_reset_pktlog_hybrid_2_0(struct dp_pdev *pdev)
|
||||
enum dp_mon_filter_mode mode = DP_MON_FILTER_PKT_LOG_HYBRID_MODE;
|
||||
enum dp_mon_filter_srng_type srng_type =
|
||||
DP_MON_FILTER_SRNG_TYPE_TXMON_DEST;
|
||||
struct dp_pdev_be *pdev_be = dp_get_be_pdev_from_dp_pdev(pdev);
|
||||
struct dp_mon_pdev_be *mon_pdev_be;
|
||||
struct dp_mon_pdev *mon_pdev = pdev->monitor_pdev;
|
||||
struct dp_mon_pdev_be *mon_pdev_be =
|
||||
dp_get_be_mon_pdev_from_dp_mon_pdev(mon_pdev);
|
||||
|
||||
if (!pdev) {
|
||||
dp_mon_filter_err("pdev Context is null");
|
||||
return;
|
||||
}
|
||||
|
||||
mon_pdev_be = pdev_be->monitor_pdev_be;
|
||||
|
||||
mon_pdev_be->filter_be[mode][srng_type] = filter;
|
||||
}
|
||||
#endif /* WDI_EVENT_ENABLE */
|
||||
@@ -1601,8 +1598,8 @@ dp_tx_mon_ht2_ring_cfg(struct dp_soc *soc,
|
||||
int mac_id;
|
||||
int max_mac_rings = wlan_cfg_get_num_mac_rings(pdev->wlan_cfg_ctx);
|
||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
struct dp_mon_soc_be *mon_soc = be_soc->monitor_soc_be;
|
||||
struct dp_mon_soc *mon_soc = soc->monitor_soc;
|
||||
struct dp_mon_soc_be *mon_soc_be = dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
|
||||
dp_mon_filter_info("%pK: srng type %d Max_mac_rings %d ",
|
||||
soc, srng_type, max_mac_rings);
|
||||
@@ -1615,7 +1612,7 @@ dp_tx_mon_ht2_ring_cfg(struct dp_soc *soc,
|
||||
hal_ring_handle_t hal_ring_hdl;
|
||||
|
||||
hal_ring_hdl =
|
||||
mon_soc->tx_mon_dst_ring[lmac_id].hal_srng;
|
||||
mon_soc_be->tx_mon_dst_ring[lmac_id].hal_srng;
|
||||
hal_ring_type = TX_MONITOR_DST;
|
||||
ring_buf_size = RX_DATA_BUFFER_SIZE;
|
||||
|
||||
@@ -1636,30 +1633,24 @@ QDF_STATUS dp_tx_mon_filter_update_2_0(struct dp_pdev *pdev)
|
||||
struct dp_mon_filter_be filter = {0};
|
||||
struct dp_mon_filter_be *filter_ptr;
|
||||
struct htt_tx_ring_tlv_filter *tx_tlv_filter;
|
||||
struct dp_mon_pdev *mon_pdev;
|
||||
struct dp_mon_pdev_be *mon_pdev_be;
|
||||
enum dp_mon_filter_mode mode = DP_MON_FILTER_MONITOR_MODE;
|
||||
enum dp_mon_filter_srng_type srng_type =
|
||||
DP_MON_FILTER_SRNG_TYPE_TXMON_DEST;
|
||||
struct dp_mon_pdev *mon_pdev = pdev->monitor_pdev;
|
||||
struct dp_mon_pdev_be *mon_pdev_be =
|
||||
dp_get_be_mon_pdev_from_dp_mon_pdev(mon_pdev);
|
||||
|
||||
if (!pdev) {
|
||||
dp_mon_filter_err("pdev Context is null");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
mon_pdev = pdev->monitor_pdev;
|
||||
if (!mon_pdev) {
|
||||
dp_mon_filter_err("mon pdev 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");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
mon_pdev_be = (struct dp_mon_pdev_be *)mon_pdev;
|
||||
if (filter_ptr->tx_valid) {
|
||||
qdf_mem_set(&(filter), sizeof(filter), 1);
|
||||
tx_tlv_filter = &filter.tx_tlv_filter;
|
||||
|
@@ -38,8 +38,8 @@ dp_rx_mon_srng_process_2_0(struct dp_soc *soc, struct dp_intr *int_ctx,
|
||||
hal_soc_handle_t hal_soc;
|
||||
void *mon_dst_srng;
|
||||
struct dp_mon_pdev *mon_pdev;
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
struct dp_mon_soc_be *monitor_soc = be_soc->monitor_soc_be;
|
||||
struct dp_mon_soc *mon_soc = soc->monitor_soc;
|
||||
struct dp_mon_soc_be *mon_soc_be = dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
uint32_t work_done = 0;
|
||||
|
||||
if (!pdev) {
|
||||
@@ -76,7 +76,7 @@ dp_rx_mon_srng_process_2_0(struct dp_soc *soc, struct dp_intr *int_ctx,
|
||||
struct dp_mon_desc *mon_desc;
|
||||
struct dp_mon_desc_pool *rx_desc_pool;
|
||||
|
||||
rx_desc_pool = &monitor_soc->rx_desc_mon;
|
||||
rx_desc_pool = &mon_soc_be->rx_desc_mon;
|
||||
hal_be_get_mon_dest_status(soc->hal_soc,
|
||||
rx_mon_dst_ring_desc,
|
||||
&hal_mon_rx_desc);
|
||||
@@ -118,28 +118,28 @@ dp_rx_mon_process_2_0(struct dp_soc *soc, struct dp_intr *int_ctx,
|
||||
void
|
||||
dp_rx_mon_buf_desc_pool_deinit(struct dp_soc *soc)
|
||||
{
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
struct dp_mon_soc_be *mon_soc = be_soc->monitor_soc_be;
|
||||
struct dp_mon_soc *mon_soc = soc->monitor_soc;
|
||||
struct dp_mon_soc_be *mon_soc_be = dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
|
||||
dp_mon_desc_pool_deinit(&mon_soc->rx_desc_mon);
|
||||
dp_mon_desc_pool_deinit(&mon_soc_be->rx_desc_mon);
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
dp_rx_mon_buf_desc_pool_init(struct dp_soc *soc)
|
||||
{
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
struct dp_mon_soc_be *mon_soc = be_soc->monitor_soc_be;
|
||||
struct dp_mon_soc *mon_soc = soc->monitor_soc;
|
||||
struct dp_mon_soc_be *mon_soc_be = dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
|
||||
return dp_mon_desc_pool_init(&mon_soc->rx_desc_mon);
|
||||
return dp_mon_desc_pool_init(&mon_soc_be->rx_desc_mon);
|
||||
}
|
||||
|
||||
void dp_rx_mon_buf_desc_pool_free(struct dp_soc *soc)
|
||||
{
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
struct dp_mon_soc_be *mon_soc = be_soc->monitor_soc_be;
|
||||
struct dp_mon_soc *mon_soc = soc->monitor_soc;
|
||||
struct dp_mon_soc_be *mon_soc_be = dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
|
||||
if (mon_soc)
|
||||
dp_mon_desc_pool_free(&mon_soc->rx_desc_mon);
|
||||
dp_mon_desc_pool_free(&mon_soc_be->rx_desc_mon);
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
@@ -147,8 +147,8 @@ dp_rx_mon_buf_desc_pool_alloc(struct dp_soc *soc)
|
||||
{
|
||||
struct dp_srng *mon_buf_ring;
|
||||
struct dp_mon_desc_pool *rx_mon_desc_pool;
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
struct dp_mon_soc_be *mon_soc = be_soc->monitor_soc_be;
|
||||
struct dp_mon_soc *mon_soc = soc->monitor_soc;
|
||||
struct dp_mon_soc_be *mon_soc_be = dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
int entries;
|
||||
struct wlan_cfg_dp_soc_ctxt *soc_cfg_ctx;
|
||||
|
||||
@@ -157,8 +157,9 @@ dp_rx_mon_buf_desc_pool_alloc(struct dp_soc *soc)
|
||||
entries = wlan_cfg_get_dp_soc_rx_mon_buf_ring_size(soc_cfg_ctx);
|
||||
mon_buf_ring = &soc->rxdma_mon_buf_ring[0];
|
||||
|
||||
rx_mon_desc_pool = &mon_soc->rx_desc_mon;
|
||||
rx_mon_desc_pool = &mon_soc_be->rx_desc_mon;
|
||||
|
||||
qdf_print("%s:%d rx mon buf desc pool entries: %d", __func__, __LINE__, entries);
|
||||
return dp_mon_desc_pool_alloc(entries, rx_mon_desc_pool);
|
||||
}
|
||||
|
||||
@@ -166,10 +167,10 @@ void
|
||||
dp_rx_mon_buffers_free(struct dp_soc *soc)
|
||||
{
|
||||
struct dp_mon_desc_pool *rx_mon_desc_pool;
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
struct dp_mon_soc_be *mon_soc = be_soc->monitor_soc_be;
|
||||
struct dp_mon_soc *mon_soc = soc->monitor_soc;
|
||||
struct dp_mon_soc_be *mon_soc_be = dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
|
||||
rx_mon_desc_pool = &mon_soc->rx_desc_mon;
|
||||
rx_mon_desc_pool = &mon_soc_be->rx_desc_mon;
|
||||
|
||||
dp_mon_pool_frag_unmap_and_free(soc, rx_mon_desc_pool);
|
||||
}
|
||||
@@ -181,13 +182,14 @@ dp_rx_mon_buffers_alloc(struct dp_soc *soc, uint32_t size)
|
||||
struct dp_mon_desc_pool *rx_mon_desc_pool;
|
||||
union dp_mon_desc_list_elem_t *desc_list = NULL;
|
||||
union dp_mon_desc_list_elem_t *tail = NULL;
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
struct dp_mon_soc_be *mon_soc = be_soc->monitor_soc_be;
|
||||
struct dp_mon_soc *mon_soc = soc->monitor_soc;
|
||||
struct dp_mon_soc_be *mon_soc_be = dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
|
||||
mon_buf_ring = &soc->rxdma_mon_buf_ring[0];
|
||||
|
||||
rx_mon_desc_pool = &mon_soc->rx_desc_mon;
|
||||
rx_mon_desc_pool = &mon_soc_be->rx_desc_mon;
|
||||
|
||||
qdf_print("%s:%d size: %d", __func__, __LINE__, size);
|
||||
return dp_mon_buffers_replenish(soc, mon_buf_ring,
|
||||
rx_mon_desc_pool,
|
||||
size,
|
||||
|
@@ -39,8 +39,8 @@ dp_tx_mon_srng_process_2_0(struct dp_soc *soc, struct dp_intr *int_ctx,
|
||||
void *mon_dst_srng;
|
||||
struct dp_mon_pdev *mon_pdev;
|
||||
uint32_t work_done = 0;
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
struct dp_mon_soc_be *monitor_soc = be_soc->monitor_soc_be;
|
||||
struct dp_mon_soc *mon_soc = soc->monitor_soc;
|
||||
struct dp_mon_soc_be *mon_soc_be = dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
|
||||
if (!pdev) {
|
||||
dp_mon_err("%pK: pdev is null for mac_id = %d", soc, mac_id);
|
||||
@@ -48,7 +48,7 @@ dp_tx_mon_srng_process_2_0(struct dp_soc *soc, struct dp_intr *int_ctx,
|
||||
}
|
||||
|
||||
mon_pdev = pdev->monitor_pdev;
|
||||
mon_dst_srng = monitor_soc->tx_mon_dst_ring[mac_id].hal_srng;
|
||||
mon_dst_srng = mon_soc_be->tx_mon_dst_ring[mac_id].hal_srng;
|
||||
|
||||
if (!mon_dst_srng || !hal_srng_initialized(mon_dst_srng)) {
|
||||
dp_mon_err("%pK: : HAL Monitor Destination Ring Init Failed -- %pK",
|
||||
@@ -76,7 +76,7 @@ dp_tx_mon_srng_process_2_0(struct dp_soc *soc, struct dp_intr *int_ctx,
|
||||
struct dp_mon_desc *mon_desc;
|
||||
struct dp_mon_desc_pool *tx_desc_pool;
|
||||
|
||||
tx_desc_pool = &monitor_soc->tx_desc_mon;
|
||||
tx_desc_pool = &mon_soc_be->tx_desc_mon;
|
||||
hal_be_get_mon_dest_status(soc->hal_soc,
|
||||
tx_mon_dst_ring_desc,
|
||||
&hal_mon_tx_desc);
|
||||
@@ -118,28 +118,28 @@ dp_tx_mon_process_2_0(struct dp_soc *soc, struct dp_intr *int_ctx,
|
||||
void
|
||||
dp_tx_mon_buf_desc_pool_deinit(struct dp_soc *soc)
|
||||
{
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
struct dp_mon_soc_be *mon_soc = be_soc->monitor_soc_be;
|
||||
struct dp_mon_soc *mon_soc = soc->monitor_soc;
|
||||
struct dp_mon_soc_be *mon_soc_be = dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
|
||||
dp_mon_desc_pool_deinit(&mon_soc->tx_desc_mon);
|
||||
dp_mon_desc_pool_deinit(&mon_soc_be->tx_desc_mon);
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
dp_tx_mon_buf_desc_pool_init(struct dp_soc *soc)
|
||||
{
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
struct dp_mon_soc_be *mon_soc = be_soc->monitor_soc_be;
|
||||
struct dp_mon_soc *mon_soc = soc->monitor_soc;
|
||||
struct dp_mon_soc_be *mon_soc_be = dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
|
||||
return dp_mon_desc_pool_init(&mon_soc->tx_desc_mon);
|
||||
return dp_mon_desc_pool_init(&mon_soc_be->tx_desc_mon);
|
||||
}
|
||||
|
||||
void dp_tx_mon_buf_desc_pool_free(struct dp_soc *soc)
|
||||
{
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
struct dp_mon_soc_be *mon_soc = be_soc->monitor_soc_be;
|
||||
struct dp_mon_soc *mon_soc = soc->monitor_soc;
|
||||
struct dp_mon_soc_be *mon_soc_be = dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
|
||||
if (mon_soc)
|
||||
dp_mon_desc_pool_free(&mon_soc->tx_desc_mon);
|
||||
if (mon_soc_be)
|
||||
dp_mon_desc_pool_free(&mon_soc_be->tx_desc_mon);
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
@@ -147,19 +147,20 @@ dp_tx_mon_buf_desc_pool_alloc(struct dp_soc *soc)
|
||||
{
|
||||
struct dp_srng *mon_buf_ring;
|
||||
struct dp_mon_desc_pool *tx_mon_desc_pool;
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
struct dp_mon_soc_be *mon_soc = be_soc->monitor_soc_be;
|
||||
int entries;
|
||||
struct wlan_cfg_dp_soc_ctxt *soc_cfg_ctx;
|
||||
struct dp_mon_soc *mon_soc = soc->monitor_soc;
|
||||
struct dp_mon_soc_be *mon_soc_be = dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
|
||||
soc_cfg_ctx = soc->wlan_cfg_ctx;
|
||||
|
||||
entries = wlan_cfg_get_dp_soc_tx_mon_buf_ring_size(soc_cfg_ctx);
|
||||
|
||||
mon_buf_ring = &mon_soc->tx_mon_buf_ring;
|
||||
mon_buf_ring = &mon_soc_be->tx_mon_buf_ring;
|
||||
|
||||
tx_mon_desc_pool = &mon_soc->tx_desc_mon;
|
||||
tx_mon_desc_pool = &mon_soc_be->tx_desc_mon;
|
||||
|
||||
qdf_print("%s:%d tx mon buf desc pool entries: %d", __func__, __LINE__, entries);
|
||||
return dp_mon_desc_pool_alloc(entries, tx_mon_desc_pool);
|
||||
}
|
||||
|
||||
@@ -167,10 +168,10 @@ void
|
||||
dp_tx_mon_buffers_free(struct dp_soc *soc)
|
||||
{
|
||||
struct dp_mon_desc_pool *tx_mon_desc_pool;
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
struct dp_mon_soc_be *mon_soc = be_soc->monitor_soc_be;
|
||||
struct dp_mon_soc *mon_soc = soc->monitor_soc;
|
||||
struct dp_mon_soc_be *mon_soc_be = dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
|
||||
tx_mon_desc_pool = &mon_soc->tx_desc_mon;
|
||||
tx_mon_desc_pool = &mon_soc_be->tx_desc_mon;
|
||||
|
||||
dp_mon_pool_frag_unmap_and_free(soc, tx_mon_desc_pool);
|
||||
}
|
||||
@@ -182,12 +183,12 @@ dp_tx_mon_buffers_alloc(struct dp_soc *soc, uint32_t size)
|
||||
struct dp_mon_desc_pool *tx_mon_desc_pool;
|
||||
union dp_mon_desc_list_elem_t *desc_list = NULL;
|
||||
union dp_mon_desc_list_elem_t *tail = NULL;
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
struct dp_mon_soc_be *mon_soc = be_soc->monitor_soc_be;
|
||||
struct dp_mon_soc *mon_soc = soc->monitor_soc;
|
||||
struct dp_mon_soc_be *mon_soc_be = dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
|
||||
mon_buf_ring = &mon_soc->tx_mon_buf_ring;
|
||||
mon_buf_ring = &mon_soc_be->tx_mon_buf_ring;
|
||||
|
||||
tx_mon_desc_pool = &mon_soc->tx_desc_mon;
|
||||
tx_mon_desc_pool = &mon_soc_be->tx_desc_mon;
|
||||
|
||||
return dp_mon_buffers_replenish(soc, mon_buf_ring,
|
||||
tx_mon_desc_pool,
|
||||
|
在新工单中引用
屏蔽一个用户