qcacmn: Add ring stats for direct switch rings
Add ring statistics for reo2ppe and ppe2tcl rings Change-Id: Ib9c15ba2f95d5cb97d238afad8f6f93dc5100e82 CRs-Fixed: 3279422
This commit is contained in:

committed by
Madan Koyyalamudi

parent
27da15777b
commit
c3630a234b
@@ -61,6 +61,16 @@ static struct wlan_cfg_tcl_wbm_ring_num_map g_tcl_wbm_map_array[MAX_TCL_DATA_RIN
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef WLAN_SUPPORT_PPEDS
|
||||||
|
static void dp_ppeds_rings_status(struct dp_soc *soc)
|
||||||
|
{
|
||||||
|
struct dp_soc_be *be_soc = dp_get_be_soc_from_dp_soc(soc);
|
||||||
|
|
||||||
|
dp_print_ring_stat_from_hal(soc, &be_soc->reo2ppe_ring, REO2PPE);
|
||||||
|
dp_print_ring_stat_from_hal(soc, &be_soc->ppe2tcl_ring, PPE2TCL);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void dp_soc_cfg_attach_be(struct dp_soc *soc)
|
static void dp_soc_cfg_attach_be(struct dp_soc *soc)
|
||||||
{
|
{
|
||||||
struct wlan_cfg_dp_soc_ctxt *soc_cfg_ctx = soc->wlan_cfg_ctx;
|
struct wlan_cfg_dp_soc_ctxt *soc_cfg_ctx = soc->wlan_cfg_ctx;
|
||||||
@@ -2022,6 +2032,13 @@ void dp_initialize_arch_ops_be(struct dp_arch_ops *arch_ops)
|
|||||||
dp_reconfig_tx_vdev_mcast_ctrl_be;
|
dp_reconfig_tx_vdev_mcast_ctrl_be;
|
||||||
arch_ops->dp_cc_reg_cfg_init = dp_cc_reg_cfg_init;
|
arch_ops->dp_cc_reg_cfg_init = dp_cc_reg_cfg_init;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef WLAN_SUPPORT_PPEDS
|
||||||
|
arch_ops->dp_txrx_ppeds_rings_status = dp_ppeds_rings_status;
|
||||||
|
#else
|
||||||
|
arch_ops->dp_txrx_ppeds_rings_status = NULL;
|
||||||
|
#endif
|
||||||
|
|
||||||
dp_init_near_full_arch_ops_be(arch_ops);
|
dp_init_near_full_arch_ops_be(arch_ops);
|
||||||
arch_ops->get_rx_hash_key = dp_get_rx_hash_key_be;
|
arch_ops->get_rx_hash_key = dp_get_rx_hash_key_be;
|
||||||
arch_ops->print_mlo_ast_stats = dp_print_mlo_ast_stats_be;
|
arch_ops->print_mlo_ast_stats = dp_print_mlo_ast_stats_be;
|
||||||
|
@@ -2377,6 +2377,17 @@ void dp_update_delay_stats(struct cdp_tid_tx_stats *tstats,
|
|||||||
*/
|
*/
|
||||||
void dp_print_ring_stats(struct dp_pdev *pdev);
|
void dp_print_ring_stats(struct dp_pdev *pdev);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dp_print_ring_stat_from_hal(): Print tail and head pointer through hal
|
||||||
|
* @soc: soc handle
|
||||||
|
* @srng: srng handle
|
||||||
|
* @ring_type: ring type
|
||||||
|
*
|
||||||
|
* Return:void
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
dp_print_ring_stat_from_hal(struct dp_soc *soc, struct dp_srng *srng,
|
||||||
|
enum hal_ring_type ring_type);
|
||||||
/**
|
/**
|
||||||
* dp_print_pdev_cfg_params() - Print the pdev cfg parameters
|
* dp_print_pdev_cfg_params() - Print the pdev cfg parameters
|
||||||
* @pdev_handle: DP pdev handle
|
* @pdev_handle: DP pdev handle
|
||||||
|
@@ -9583,6 +9583,10 @@ char *dp_srng_get_str_from_hal_ring_type(enum hal_ring_type ring_type)
|
|||||||
return "Rxdma_monitor_destination";
|
return "Rxdma_monitor_destination";
|
||||||
case WBM_IDLE_LINK:
|
case WBM_IDLE_LINK:
|
||||||
return "WBM_hw_idle_link";
|
return "WBM_hw_idle_link";
|
||||||
|
case PPE2TCL:
|
||||||
|
return "PPE2TCL";
|
||||||
|
case REO2PPE:
|
||||||
|
return "REO2PPE";
|
||||||
default:
|
default:
|
||||||
dp_err("Invalid ring type");
|
dp_err("Invalid ring type");
|
||||||
break;
|
break;
|
||||||
|
@@ -5819,7 +5819,7 @@ dp_print_pdev_cfg_params(struct dp_pdev *pdev)
|
|||||||
*
|
*
|
||||||
* Return: void
|
* Return: void
|
||||||
*/
|
*/
|
||||||
static void
|
void
|
||||||
dp_print_ring_stat_from_hal(struct dp_soc *soc, struct dp_srng *srng,
|
dp_print_ring_stat_from_hal(struct dp_soc *soc, struct dp_srng *srng,
|
||||||
enum hal_ring_type ring_type)
|
enum hal_ring_type ring_type)
|
||||||
{
|
{
|
||||||
@@ -6031,6 +6031,11 @@ dp_print_ring_stats(struct dp_pdev *pdev)
|
|||||||
[lmac_id],
|
[lmac_id],
|
||||||
RXDMA_DST);
|
RXDMA_DST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#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);
|
||||||
|
#endif
|
||||||
hif_rtpm_put(HIF_RTPM_PUT_ASYNC, HIF_RTPM_ID_DP_RING_STATS);
|
hif_rtpm_put(HIF_RTPM_PUT_ASYNC, HIF_RTPM_ID_DP_RING_STATS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1986,6 +1986,7 @@ struct dp_arch_ops {
|
|||||||
#ifdef IPA_OFFLOAD
|
#ifdef IPA_OFFLOAD
|
||||||
int8_t (*ipa_get_bank_id)(struct dp_soc *soc);
|
int8_t (*ipa_get_bank_id)(struct dp_soc *soc);
|
||||||
#endif
|
#endif
|
||||||
|
void (*dp_txrx_ppeds_rings_status)(struct dp_soc *soc);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -621,6 +621,7 @@ void dp_initialize_arch_ops_li(struct dp_arch_ops *arch_ops)
|
|||||||
arch_ops->dp_find_peer_by_destmac = dp_find_peer_by_destmac_li;
|
arch_ops->dp_find_peer_by_destmac = dp_find_peer_by_destmac_li;
|
||||||
arch_ops->peer_get_reo_hash = dp_peer_get_reo_hash_li;
|
arch_ops->peer_get_reo_hash = dp_peer_get_reo_hash_li;
|
||||||
arch_ops->reo_remap_config = dp_reo_remap_config_li;
|
arch_ops->reo_remap_config = dp_reo_remap_config_li;
|
||||||
|
arch_ops->dp_txrx_ppeds_rings_status = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef QCA_DP_TX_HW_SW_NBUF_DESC_PREFETCH
|
#ifdef QCA_DP_TX_HW_SW_NBUF_DESC_PREFETCH
|
||||||
|
Reference in New Issue
Block a user