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
Цей коміт міститься в:
Nandha Kishore Easwaran
2022-11-02 16:31:43 +05:30
зафіксовано Madan Koyyalamudi
джерело 6ef5d59bee
коміт bb7ee725be
7 змінених файлів з 73 додано та 0 видалено

Переглянути файл

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

Переглянути файл

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

Переглянути файл

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

Переглянути файл

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