qcacmn: Add txmon HP TP values in stats command

Add txmon buf and destination ring in HPTP dump command

Change-Id: Ic32d1b355d5fc309225dfc5649ee7f9568a8dca6
CRs-Fixed: 3331176
This commit is contained in:
Nandha Kishore Easwaran
2022-11-02 16:31:43 +05:30
committed by Madan Koyyalamudi
parent 6ef5d59bee
commit bb7ee725be
7 changed files with 73 additions and 0 deletions

View File

@@ -907,6 +907,12 @@ dp_tx_mon_process(struct dp_soc *soc, struct dp_intr *int_ctx,
return 0;
}
static inline uint32_t
dp_print_txmon_ring_stat_from_hal(struct dp_pdev *pdev)
{
return 0;
}
static inline
uint32_t dp_rx_mon_buf_refill(struct dp_intr *int_ctx)
{

View File

@@ -9633,6 +9633,10 @@ char *dp_srng_get_str_from_hal_ring_type(enum hal_ring_type ring_type)
return "PPE2TCL";
case REO2PPE:
return "REO2PPE";
case TX_MONITOR_DST:
return "tx_monitor_destination";
case TX_MONITOR_BUF:
return "tx_monitor_buf";
default:
dp_err("Invalid ring type");
break;

View File

@@ -17,6 +17,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
#include "qdf_types.h"
#include "qdf_module.h"
#include "dp_peer.h"
#include "dp_types.h"
#include "dp_internal.h"
@@ -5854,6 +5855,8 @@ dp_print_ring_stat_from_hal(struct dp_soc *soc, struct dp_srng *srng,
}
}
qdf_export_symbol(dp_print_ring_stat_from_hal);
#ifdef FEATURE_TSO_STATS
/**
* dp_print_tso_seg_stats - tso segment stats
@@ -6032,6 +6035,8 @@ dp_print_ring_stats(struct dp_pdev *pdev)
RXDMA_DST);
}
dp_print_txmon_ring_stat_from_hal(pdev);
#ifdef WLAN_SUPPORT_PPEDS
if (pdev->soc->arch_ops.dp_txrx_ppeds_rings_status)
pdev->soc->arch_ops.dp_txrx_ppeds_rings_status(pdev->soc);

View File

@@ -1216,6 +1216,11 @@ dp_tx_mon_process_2_0(struct dp_soc *soc, struct dp_intr *int_ctx,
return 0;
}
static void
dp_tx_mon_print_ring_stat_2_0(struct dp_pdev *pdev)
{
}
static inline
QDF_STATUS dp_mon_soc_attach_2_0(struct dp_soc *soc)
{
@@ -1331,6 +1336,7 @@ dp_mon_register_feature_ops_2_0(struct dp_soc *soc)
mon_ops->mon_neighbour_peer_add_ast = NULL;
#ifndef DISABLE_MON_CONFIG
mon_ops->mon_tx_process = dp_tx_mon_process_2_0;
mon_ops->print_txmon_ring_stat = dp_tx_mon_print_ring_stat_2_0;
#endif
#ifdef WLAN_TX_PKT_CAPTURE_ENH_BE
mon_ops->mon_peer_tid_peer_id_update = NULL;

View File

@@ -299,6 +299,22 @@ dp_tx_mon_process_2_0(struct dp_soc *soc, struct dp_intr *int_ctx,
return work_done;
}
void
dp_tx_mon_print_ring_stat_2_0(struct dp_pdev *pdev)
{
struct dp_soc *soc = pdev->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);
int lmac_id;
lmac_id = dp_get_lmac_id_for_pdev_id(soc, 0, pdev->pdev_id);
dp_print_ring_stat_from_hal(soc, &mon_soc_be->tx_mon_buf_ring,
TX_MONITOR_BUF);
dp_print_ring_stat_from_hal(soc, &mon_soc_be->tx_mon_dst_ring[lmac_id],
TX_MONITOR_DST);
}
void
dp_tx_mon_buf_desc_pool_deinit(struct dp_soc *soc)
{

View File

@@ -148,6 +148,14 @@ uint32_t
dp_tx_mon_process_2_0(struct dp_soc *soc, struct dp_intr *int_ctx,
uint32_t mac_id, uint32_t quota);
/*
* dp_tx_mon_print_ring_stat_2_0() - Print monitor ring stats
* @pdev: dp pdev handle
*
*/
void
dp_tx_mon_print_ring_stat_2_0(struct dp_pdev *pdev);
/* The maximum buffer length allocated for radiotap for monitor status buffer */
#define MAX_MONITOR_HEADER (512)
#define MAX_DUMMY_FRM_BODY (128)

View File

@@ -618,6 +618,7 @@ struct dp_mon_ops {
struct dp_intr *int_ctx,
uint32_t mac_id,
uint32_t quota);
void (*print_txmon_ring_stat)(struct dp_pdev *pdev);
#endif
void (*mon_peer_tx_init)(struct dp_pdev *pdev, struct dp_peer *peer);
void (*mon_peer_tx_cleanup)(struct dp_vdev *vdev,
@@ -2432,6 +2433,28 @@ uint32_t dp_rx_mon_buf_refill(struct dp_intr *int_ctx)
return monitor_ops->rx_mon_refill_buf_ring(int_ctx);
}
static inline
void dp_print_txmon_ring_stat_from_hal(struct dp_pdev *pdev)
{
struct dp_soc *soc = pdev->soc;
struct dp_mon_soc *mon_soc = soc->monitor_soc;
struct dp_mon_ops *monitor_ops;
if (!mon_soc) {
dp_mon_debug("monitor soc is NULL");
return;
}
monitor_ops = mon_soc->mon_ops;
if (!monitor_ops || !monitor_ops->print_txmon_ring_stat) {
dp_mon_debug("callback not registered");
return;
}
monitor_ops->print_txmon_ring_stat(pdev);
}
#else
static inline
uint32_t dp_monitor_process(struct dp_soc *soc, struct dp_intr *int_ctx,
@@ -2458,6 +2481,11 @@ uint32_t dp_rx_mon_buf_refill(struct dp_intr *int_ctx)
{
return 0;
}
static inline
void dp_print_txmon_ring_stat_from_hal(struct dp_pdev *pdev)
{
}
#endif
/*