diff mbox

[U-Boot,6/7] driver: net: ldpaa: Add debug info of printing DPMAC stats

Message ID 1450951417-17618-1-git-send-email-prabhakar@freescale.com
State Accepted
Commit 44b2036e1277eb694a5cefa1551120e1e79b41f0
Delegated to: York Sun
Headers show

Commit Message

Prabhakar Kushwaha Dec. 24, 2015, 10:03 a.m. UTC
Add debug information prints to provide DPMAC statistics
 - Number of bytes received
 - Number of received and discard frames
 - Number of bytes transferred
 - Number of frames transferred
 etc.

Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com>
---
 drivers/net/ldpaa_eth/ldpaa_eth.c | 78 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 78 insertions(+)

Comments

York Sun Jan. 27, 2016, 5:08 p.m. UTC | #1
On 12/24/2015 02:03 AM, Prabhakar Kushwaha wrote:
> Add debug information prints to provide DPMAC statistics
>  - Number of bytes received
>  - Number of received and discard frames
>  - Number of bytes transferred
>  - Number of frames transferred
>  etc.
> 
> Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com>
> ---
>  drivers/net/ldpaa_eth/ldpaa_eth.c | 78 +++++++++++++++++++++++++++++++++++++++
>  1 file changed, 78 insertions(+)

Applied to u-boot-fsl-qoriq master. Awaiting upstream.

Thanks.

York
diff mbox

Patch

diff --git a/drivers/net/ldpaa_eth/ldpaa_eth.c b/drivers/net/ldpaa_eth/ldpaa_eth.c
index a2e455f..e09553a 100644
--- a/drivers/net/ldpaa_eth/ldpaa_eth.c
+++ b/drivers/net/ldpaa_eth/ldpaa_eth.c
@@ -100,6 +100,83 @@  static void ldpaa_eth_get_dpni_counter(void)
 	}
 	printf("DPNI_CNT_EGR_FRAME_DISCARD =%lld\n", value);
 }
+
+static void ldpaa_eth_get_dpmac_counter(struct eth_device *net_dev)
+{
+	struct ldpaa_eth_priv *priv = (struct ldpaa_eth_priv *)net_dev->priv;
+	int err = 0;
+	u64 value;
+
+	err = dpmac_get_counter(dflt_mc_io, MC_CMD_NO_FLAGS,
+		     priv->dpmac_handle,
+		     DPMAC_CNT_ING_BYTE,
+		     &value);
+	if (err < 0) {
+		printf("dpmac_get_counter: DPMAC_CNT_ING_BYTE failed\n");
+		return;
+	}
+	printf("DPMAC_CNT_ING_BYTE=%lld\n", value);
+
+	err = dpmac_get_counter(dflt_mc_io, MC_CMD_NO_FLAGS,
+		     priv->dpmac_handle,
+		     DPMAC_CNT_ING_FRAME_DISCARD,
+		     &value);
+	if (err < 0) {
+		printf("dpmac_get_counter: DPMAC_CNT_ING_FRAME_DISCARD failed\n");
+		return;
+	}
+	printf("DPMAC_CNT_ING_FRAME_DISCARD=%lld\n", value);
+
+	err = dpmac_get_counter(dflt_mc_io, MC_CMD_NO_FLAGS,
+		     priv->dpmac_handle,
+		     DPMAC_CNT_ING_ALIGN_ERR,
+		     &value);
+	if (err < 0) {
+		printf("dpmac_get_counter: DPMAC_CNT_ING_ALIGN_ERR failed\n");
+		return;
+	}
+	printf("DPMAC_CNT_ING_ALIGN_ERR =%lld\n", value);
+
+	err = dpmac_get_counter(dflt_mc_io, MC_CMD_NO_FLAGS,
+		     priv->dpmac_handle,
+		     DPMAC_CNT_ING_BYTE,
+		     &value);
+	if (err < 0) {
+		printf("dpmac_get_counter: DPMAC_CNT_ING_BYTE failed\n");
+		return;
+	}
+	printf("DPMAC_CNT_ING_BYTE=%lld\n", value);
+
+	err = dpmac_get_counter(dflt_mc_io, MC_CMD_NO_FLAGS,
+		     priv->dpmac_handle,
+		     DPMAC_CNT_ING_ERR_FRAME,
+		     &value);
+	if (err < 0) {
+		printf("dpmac_get_counter: DPMAC_CNT_ING_ERR_FRAME failed\n");
+		return;
+	}
+	printf("DPMAC_CNT_ING_ERR_FRAME=%lld\n", value);
+
+	err = dpmac_get_counter(dflt_mc_io, MC_CMD_NO_FLAGS,
+		     priv->dpmac_handle,
+		     DPMAC_CNT_EGR_BYTE ,
+		     &value);
+	if (err < 0) {
+		printf("dpmac_get_counter: DPMAC_CNT_EGR_BYTE failed\n");
+		return;
+	}
+	printf("DPMAC_CNT_EGR_BYTE =%lld\n", value);
+
+	err = dpmac_get_counter(dflt_mc_io, MC_CMD_NO_FLAGS,
+		     priv->dpmac_handle,
+		     DPMAC_CNT_EGR_ERR_FRAME ,
+		     &value);
+	if (err < 0) {
+		printf("dpmac_get_counter: DPMAC_CNT_EGR_ERR_FRAME failed\n");
+		return;
+	}
+	printf("DPMAC_CNT_EGR_ERR_FRAME =%lld\n", value);
+}
 #endif
 
 static void ldpaa_eth_rx(struct ldpaa_eth_priv *priv,
@@ -436,6 +513,7 @@  static void ldpaa_eth_stop(struct eth_device *net_dev)
 
 #ifdef DEBUG
 	ldpaa_eth_get_dpni_counter();
+	ldpaa_eth_get_dpmac_counter(net_dev);
 #endif
 
 	err = dprc_disconnect(dflt_mc_io, MC_CMD_NO_FLAGS,