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:
Pavankumar Nandeshwar
2022-09-13 03:39:32 -07:00
gecommit door Madan Koyyalamudi
bovenliggende 27da15777b
commit c3630a234b
6 gewijzigde bestanden met toevoegingen van 40 en 1 verwijderingen

Bestand weergeven

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

Bestand weergeven

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

Bestand weergeven

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

Bestand weergeven

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

Bestand weergeven

@@ -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);
}; };
/** /**

Bestand weergeven

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