qcacmn: Fix for monitor issues in WKK
Fix for monitor issues in WKK. Change-Id: Ie0dbd39b6a9b0014d85b2bdd58113326ac937ba0 CRs-Fixed: 3109099
This commit is contained in:

committed by
Madan Koyyalamudi

parent
15ee4b1a2a
commit
10c1ced2ac
@@ -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-2022 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
|
||||
@@ -567,6 +567,9 @@ static QDF_STATUS dp_vdev_attach_be(struct dp_soc *soc, struct dp_vdev *vdev)
|
||||
struct dp_vdev_be *be_vdev = dp_get_be_vdev_from_dp_vdev(vdev);
|
||||
struct dp_pdev *pdev = vdev->pdev;
|
||||
|
||||
if (vdev->opmode == wlan_op_mode_monitor)
|
||||
return QDF_STATUS_SUCCESS;
|
||||
|
||||
be_vdev->vdev_id_check_en = DP_TX_VDEV_ID_CHECK_ENABLE;
|
||||
|
||||
be_vdev->bank_id = dp_tx_get_bank_profile(be_soc, be_vdev);
|
||||
@@ -601,6 +604,9 @@ static QDF_STATUS dp_vdev_detach_be(struct dp_soc *soc, struct dp_vdev *vdev)
|
||||
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||
struct dp_vdev_be *be_vdev = dp_get_be_vdev_from_dp_vdev(vdev);
|
||||
|
||||
if (vdev->opmode == wlan_op_mode_monitor)
|
||||
return QDF_STATUS_SUCCESS;
|
||||
|
||||
dp_tx_put_bank_profile(be_soc, be_vdev);
|
||||
dp_clr_mlo_ptnr_list(soc, vdev);
|
||||
|
||||
|
@@ -5634,11 +5634,16 @@ static void dp_soc_deinit(void *txrx_soc)
|
||||
{
|
||||
struct dp_soc *soc = (struct dp_soc *)txrx_soc;
|
||||
struct htt_soc *htt_soc = soc->htt_handle;
|
||||
struct dp_mon_ops *mon_ops;
|
||||
|
||||
qdf_atomic_set(&soc->cmn_init_done, 0);
|
||||
|
||||
soc->arch_ops.txrx_soc_deinit(soc);
|
||||
|
||||
mon_ops = dp_mon_ops_get(soc);
|
||||
if (mon_ops && mon_ops->mon_soc_deinit)
|
||||
mon_ops->mon_soc_deinit(soc);
|
||||
|
||||
/* free peer tables & AST tables allocated during peer_map_attach */
|
||||
if (soc->peer_map_attach_success) {
|
||||
dp_peer_find_detach(soc);
|
||||
@@ -13037,6 +13042,7 @@ void *dp_soc_init(struct dp_soc *soc, HTC_HANDLE htc_handle,
|
||||
struct hal_reo_params reo_params;
|
||||
uint8_t i;
|
||||
int num_dp_msi;
|
||||
struct dp_mon_ops *mon_ops;
|
||||
|
||||
wlan_minidump_log(soc, sizeof(*soc), soc->ctrl_psoc,
|
||||
WLAN_MD_DP_SOC, "dp_soc");
|
||||
@@ -13197,6 +13203,10 @@ void *dp_soc_init(struct dp_soc *soc, HTC_HANDLE htc_handle,
|
||||
|
||||
soc->features.pn_in_reo_dest = hal_reo_enable_pn_in_dest(soc->hal_soc);
|
||||
|
||||
mon_ops = dp_mon_ops_get(soc);
|
||||
if (mon_ops && mon_ops->mon_soc_init)
|
||||
mon_ops->mon_soc_init(soc);
|
||||
|
||||
qdf_atomic_set(&soc->cmn_init_done, 1);
|
||||
|
||||
qdf_nbuf_queue_init(&soc->htt_stats.msg);
|
||||
|
@@ -220,6 +220,9 @@ dp_mon_buffers_replenish(struct dp_soc *dp_soc,
|
||||
dp_soc->hal_soc,
|
||||
mon_srng);
|
||||
|
||||
if (!mon_ring_entry)
|
||||
break;
|
||||
|
||||
qdf_assert_always((*desc_list)->mon_desc.in_use == 0);
|
||||
|
||||
(*desc_list)->mon_desc.in_use = 1;
|
||||
@@ -248,7 +251,9 @@ dp_mon_buffers_replenish(struct dp_soc *dp_soc,
|
||||
return ret;
|
||||
}
|
||||
|
||||
QDF_STATUS dp_mon_desc_pool_init(struct dp_mon_desc_pool *mon_desc_pool)
|
||||
QDF_STATUS
|
||||
dp_mon_desc_pool_init(struct dp_mon_desc_pool *mon_desc_pool,
|
||||
uint32_t pool_size)
|
||||
{
|
||||
int desc_id;
|
||||
/* Initialize monitor desc lock */
|
||||
@@ -259,6 +264,7 @@ QDF_STATUS dp_mon_desc_pool_init(struct dp_mon_desc_pool *mon_desc_pool)
|
||||
mon_desc_pool->buf_size = DP_MON_DATA_BUFFER_SIZE;
|
||||
/* link SW descs into a freelist */
|
||||
mon_desc_pool->freelist = &mon_desc_pool->array[0];
|
||||
mon_desc_pool->pool_size = pool_size;
|
||||
qdf_mem_zero(mon_desc_pool->freelist, mon_desc_pool->pool_size);
|
||||
|
||||
for (desc_id = 0; desc_id <= mon_desc_pool->pool_size - 1; desc_id++) {
|
||||
@@ -545,8 +551,6 @@ QDF_STATUS dp_mon_soc_detach_2_0(struct dp_soc *soc)
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
dp_tx_mon_buffers_free(soc);
|
||||
dp_rx_mon_buffers_free(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]);
|
||||
@@ -555,16 +559,110 @@ QDF_STATUS dp_mon_soc_detach_2_0(struct dp_soc *soc)
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static void dp_mon_soc_deinit_2_0(struct dp_soc *soc)
|
||||
{
|
||||
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_tx_mon_buffers_free(soc);
|
||||
dp_rx_mon_buffers_free(soc);
|
||||
|
||||
dp_tx_mon_buf_desc_pool_deinit(soc);
|
||||
dp_rx_mon_buf_desc_pool_deinit(soc);
|
||||
|
||||
dp_srng_deinit(soc, &soc->rxdma_mon_buf_ring[0], RXDMA_MONITOR_BUF, 0);
|
||||
|
||||
dp_srng_deinit(soc, &mon_soc_be->tx_mon_buf_ring, TX_MONITOR_BUF, 0);
|
||||
}
|
||||
|
||||
static
|
||||
QDF_STATUS dp_rx_mon_soc_init_2_0(struct dp_soc *soc)
|
||||
{
|
||||
if (dp_srng_init(soc, &soc->rxdma_mon_buf_ring[0],
|
||||
RXDMA_MONITOR_BUF, 0, 0)) {
|
||||
dp_mon_err("%pK: " RNG_ERR "rx_mon_buf_ring", soc);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (dp_rx_mon_buf_desc_pool_init(soc)) {
|
||||
dp_mon_err("%pK: " RNG_ERR "rx mon desc pool init", soc);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
/* monitor buffers for src */
|
||||
if (dp_rx_mon_buffers_alloc(soc, DP_MON_RING_FILL_LEVEL_DEFAULT)) {
|
||||
dp_mon_err("%pK: Rx mon buffers allocation failed", soc);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
fail:
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
static
|
||||
QDF_STATUS dp_tx_mon_soc_init_2_0(struct dp_soc *soc)
|
||||
{
|
||||
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 (dp_srng_init(soc, &mon_soc_be->tx_mon_buf_ring,
|
||||
TX_MONITOR_BUF, 0, 0)) {
|
||||
dp_mon_err("%pK: " RNG_ERR "tx_mon_buf_ring", soc);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (dp_tx_mon_buf_desc_pool_init(soc)) {
|
||||
dp_mon_err("%pK: " RNG_ERR "tx mon desc pool init", soc);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
/* monitor buffers for src */
|
||||
if (dp_tx_mon_buffers_alloc(soc, DP_MON_RING_FILL_LEVEL_DEFAULT)) {
|
||||
dp_mon_err("%pK: Tx mon buffers allocation failed", soc);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
fail:
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
static
|
||||
QDF_STATUS dp_mon_soc_init_2_0(struct dp_soc *soc)
|
||||
{
|
||||
if (soc->rxdma_mon_buf_ring[0].hal_srng) {
|
||||
dp_mon_info("%pK: mon soc init is done", soc);
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
if (dp_rx_mon_soc_init_2_0(soc)) {
|
||||
dp_mon_err("%pK: " RNG_ERR "tx_mon_buf_ring", soc);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (dp_tx_mon_soc_init_2_0(soc)) {
|
||||
dp_mon_err("%pK: " RNG_ERR "tx_mon_buf_ring", soc);
|
||||
goto fail;
|
||||
}
|
||||
return QDF_STATUS_SUCCESS;
|
||||
fail:
|
||||
dp_mon_soc_deinit_2_0(soc);
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
static
|
||||
QDF_STATUS dp_mon_soc_attach_2_0(struct dp_soc *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);
|
||||
int entries;
|
||||
struct wlan_cfg_dp_soc_ctxt *soc_cfg_ctx;
|
||||
|
||||
soc_cfg_ctx = soc->wlan_cfg_ctx;
|
||||
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;
|
||||
@@ -589,18 +687,6 @@ QDF_STATUS dp_mon_soc_attach_2_0(struct dp_soc *soc)
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (dp_srng_init(soc, &soc->rxdma_mon_buf_ring[0],
|
||||
RXDMA_MONITOR_BUF, 0, 0)) {
|
||||
dp_mon_err("%pK: " RNG_ERR "rx_mon_buf_ring", soc);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (dp_srng_init(soc, &mon_soc_be->tx_mon_buf_ring,
|
||||
TX_MONITOR_BUF, 0, 0)) {
|
||||
dp_mon_err("%pK: " RNG_ERR "tx_mon_buf_ring", soc);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
/* allocate sw desc pool */
|
||||
if (dp_rx_mon_buf_desc_pool_alloc(soc)) {
|
||||
dp_mon_err("%pK: Rx mon desc pool allocation failed", soc);
|
||||
@@ -612,28 +698,6 @@ QDF_STATUS dp_mon_soc_attach_2_0(struct dp_soc *soc)
|
||||
goto fail;
|
||||
}
|
||||
|
||||
/* initialize sw desc pool */
|
||||
if (dp_tx_mon_buf_desc_pool_init(soc)) {
|
||||
dp_mon_err("%pK: " RNG_ERR "tx mon desc pool init", soc);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (dp_rx_mon_buf_desc_pool_init(soc)) {
|
||||
dp_mon_err("%pK: " RNG_ERR "rx mon desc pool init", soc);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
/* monitor buffers for src */
|
||||
if (dp_rx_mon_buffers_alloc(soc, DP_MON_RING_FILL_LEVEL_DEFAULT)) {
|
||||
dp_mon_err("%pK: Rx mon buffers allocation failed", soc);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (dp_tx_mon_buffers_alloc(soc, DP_MON_RING_FILL_LEVEL_DEFAULT)) {
|
||||
dp_mon_err("%pK: Tx mon buffers allocation failed", soc);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
fail:
|
||||
dp_mon_soc_detach_2_0(soc);
|
||||
@@ -975,6 +1039,8 @@ struct dp_mon_ops monitor_ops_2_0 = {
|
||||
.mon_soc_cfg_init = dp_mon_soc_cfg_init,
|
||||
.mon_soc_attach = dp_mon_soc_attach_2_0,
|
||||
.mon_soc_detach = dp_mon_soc_detach_2_0,
|
||||
.mon_soc_init = dp_mon_soc_init_2_0,
|
||||
.mon_soc_deinit = dp_mon_soc_deinit_2_0,
|
||||
.mon_pdev_alloc = dp_mon_pdev_alloc_2_0,
|
||||
.mon_pdev_free = dp_mon_pdev_free_2_0,
|
||||
.mon_pdev_attach = dp_mon_pdev_attach,
|
||||
|
@@ -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-2022 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
|
||||
@@ -134,10 +134,13 @@ struct dp_mon_soc_be {
|
||||
/**
|
||||
* dp_mon_desc_pool_init() - Monitor descriptor pool init
|
||||
* @mon_desc_pool: mon desc pool
|
||||
* @pool_size
|
||||
*
|
||||
* Return: non-zero for failure, zero for success
|
||||
*/
|
||||
QDF_STATUS dp_mon_desc_pool_init(struct dp_mon_desc_pool *mon_desc_pool);
|
||||
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
|
||||
|
@@ -1745,5 +1745,8 @@ QDF_STATUS dp_rx_mon_filter_update_2_0(struct dp_pdev *pdev)
|
||||
dp_mon_filter_h2t_setup(soc, pdev, srng_type, &filter.rx_tlv_filter);
|
||||
dp_mon_ht2_rx_ring_cfg(soc, pdev, srng_type,
|
||||
&filter.rx_tlv_filter.tlv_filter);
|
||||
dp_mon_filter_show_filter(mon_pdev,
|
||||
DP_MON_FILTER_MONITOR_MODE,
|
||||
&filter.rx_tlv_filter);
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
@@ -126,7 +126,8 @@ void
|
||||
dp_rx_mon_buf_desc_pool_deinit(struct dp_soc *soc)
|
||||
{
|
||||
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);
|
||||
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_be->rx_desc_mon);
|
||||
}
|
||||
@@ -135,15 +136,20 @@ QDF_STATUS
|
||||
dp_rx_mon_buf_desc_pool_init(struct dp_soc *soc)
|
||||
{
|
||||
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);
|
||||
struct dp_mon_soc_be *mon_soc_be =
|
||||
dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
uint32_t num_entries;
|
||||
|
||||
return dp_mon_desc_pool_init(&mon_soc_be->rx_desc_mon);
|
||||
num_entries =
|
||||
wlan_cfg_get_dp_soc_rx_mon_buf_ring_size(soc->wlan_cfg_ctx);
|
||||
return dp_mon_desc_pool_init(&mon_soc_be->rx_desc_mon, num_entries);
|
||||
}
|
||||
|
||||
void dp_rx_mon_buf_desc_pool_free(struct dp_soc *soc)
|
||||
{
|
||||
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);
|
||||
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_be->rx_desc_mon);
|
||||
@@ -155,7 +161,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_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);
|
||||
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;
|
||||
|
||||
@@ -175,7 +182,8 @@ dp_rx_mon_buffers_free(struct dp_soc *soc)
|
||||
{
|
||||
struct dp_mon_desc_pool *rx_mon_desc_pool;
|
||||
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);
|
||||
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_be->rx_desc_mon;
|
||||
|
||||
@@ -190,13 +198,13 @@ dp_rx_mon_buffers_alloc(struct dp_soc *soc, uint32_t size)
|
||||
union dp_mon_desc_list_elem_t *desc_list = NULL;
|
||||
union dp_mon_desc_list_elem_t *tail = 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);
|
||||
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_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,
|
||||
|
@@ -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-2022 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
|
||||
@@ -127,7 +127,8 @@ void
|
||||
dp_tx_mon_buf_desc_pool_deinit(struct dp_soc *soc)
|
||||
{
|
||||
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);
|
||||
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_be->tx_desc_mon);
|
||||
}
|
||||
@@ -136,15 +137,20 @@ QDF_STATUS
|
||||
dp_tx_mon_buf_desc_pool_init(struct dp_soc *soc)
|
||||
{
|
||||
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);
|
||||
struct dp_mon_soc_be *mon_soc_be =
|
||||
dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
uint32_t num_entries;
|
||||
|
||||
return dp_mon_desc_pool_init(&mon_soc_be->tx_desc_mon);
|
||||
num_entries =
|
||||
wlan_cfg_get_dp_soc_rx_mon_buf_ring_size(soc->wlan_cfg_ctx);
|
||||
return dp_mon_desc_pool_init(&mon_soc_be->tx_desc_mon, num_entries);
|
||||
}
|
||||
|
||||
void dp_tx_mon_buf_desc_pool_free(struct dp_soc *soc)
|
||||
{
|
||||
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);
|
||||
struct dp_mon_soc_be *mon_soc_be =
|
||||
dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
|
||||
if (mon_soc_be)
|
||||
dp_mon_desc_pool_free(&mon_soc_be->tx_desc_mon);
|
||||
@@ -158,7 +164,8 @@ dp_tx_mon_buf_desc_pool_alloc(struct dp_soc *soc)
|
||||
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);
|
||||
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;
|
||||
|
||||
@@ -177,7 +184,8 @@ dp_tx_mon_buffers_free(struct dp_soc *soc)
|
||||
{
|
||||
struct dp_mon_desc_pool *tx_mon_desc_pool;
|
||||
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);
|
||||
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_be->tx_desc_mon;
|
||||
|
||||
@@ -192,7 +200,8 @@ dp_tx_mon_buffers_alloc(struct dp_soc *soc, uint32_t size)
|
||||
union dp_mon_desc_list_elem_t *desc_list = NULL;
|
||||
union dp_mon_desc_list_elem_t *tail = 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);
|
||||
struct dp_mon_soc_be *mon_soc_be =
|
||||
dp_get_be_mon_soc_from_dp_mon_soc(mon_soc);
|
||||
|
||||
mon_buf_ring = &mon_soc_be->tx_mon_buf_ring;
|
||||
|
||||
|
@@ -418,6 +418,8 @@ struct dp_mon_ops {
|
||||
QDF_STATUS (*mon_soc_attach)(struct dp_soc *soc);
|
||||
QDF_STATUS (*mon_soc_detach)(struct dp_soc *soc);
|
||||
QDF_STATUS (*mon_pdev_alloc)(struct dp_pdev *pdev);
|
||||
QDF_STATUS (*mon_soc_init)(struct dp_soc *soc);
|
||||
void (*mon_soc_deinit)(struct dp_soc *soc);
|
||||
void (*mon_pdev_free)(struct dp_pdev *pdev);
|
||||
QDF_STATUS (*mon_pdev_attach)(struct dp_pdev *pdev);
|
||||
QDF_STATUS (*mon_pdev_detach)(struct dp_pdev *pdev);
|
||||
|
@@ -501,9 +501,6 @@ QDF_STATUS dp_mon_filter_update(struct dp_pdev *pdev)
|
||||
if (mon_ops && mon_ops->tx_mon_filter_update)
|
||||
mon_ops->tx_mon_filter_update(pdev);
|
||||
|
||||
if (mon_ops && mon_ops->rx_mon_filter_update)
|
||||
mon_ops->rx_mon_filter_update(pdev);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
|
@@ -77,7 +77,7 @@ do { \
|
||||
} while (0)
|
||||
|
||||
#define DP_MON_FILTER_PRINT(fmt, args ...) \
|
||||
QDF_TRACE(QDF_MODULE_ID_MON_FILTER, QDF_TRACE_LEVEL_DEBUG, \
|
||||
QDF_TRACE(QDF_MODULE_ID_MON_FILTER, QDF_TRACE_LEVEL_ERROR, \
|
||||
fmt, ## args)
|
||||
|
||||
#define dp_mon_filter_err(params...) QDF_TRACE_ERROR(QDF_MODULE_ID_MON_FILTER, params)
|
||||
|
Reference in New Issue
Block a user