96 lines
3.5 KiB
Diff
96 lines
3.5 KiB
Diff
From fa4e59c0fe5e6e2fd8ba29cdcaa03988b3d301c6 Mon Sep 17 00:00:00 2001
|
|
From: Bogdan Purcareata <bogdan.purcareata@nxp.com>
|
|
Date: Mon, 23 Oct 2017 08:31:25 +0000
|
|
Subject: [PATCH] dpaa2-eth: Update dpni_get_statistics
|
|
|
|
Statistics struct now contains an addditional page, with CEETM stats.
|
|
Also update the cmd version, and the call where it's used.
|
|
|
|
Signed-off-by: Bogdan Purcareata <bogdan.purcareata@nxp.com>
|
|
---
|
|
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | 2 +-
|
|
drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c | 2 +-
|
|
drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h | 3 ++-
|
|
drivers/net/ethernet/freescale/dpaa2/dpni.c | 4 ++++
|
|
drivers/net/ethernet/freescale/dpaa2/dpni.h | 1 +
|
|
5 files changed, 9 insertions(+), 3 deletions(-)
|
|
|
|
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
|
|
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
|
|
@@ -1479,7 +1479,7 @@ static void wait_for_egress_fq_empty(str
|
|
goto out;
|
|
|
|
do {
|
|
- err = dpni_get_statistics(priv->mc_io, 0, priv->mc_token, 6,
|
|
+ err = dpni_get_statistics(priv->mc_io, 0, priv->mc_token, 6, 0,
|
|
&stats);
|
|
if (err)
|
|
goto out;
|
|
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c
|
|
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c
|
|
@@ -211,7 +211,7 @@ static void dpaa2_eth_get_ethtool_stats(
|
|
if (j == 4 || j == 5)
|
|
continue;
|
|
err = dpni_get_statistics(priv->mc_io, 0, priv->mc_token,
|
|
- j, &dpni_stats);
|
|
+ j, 0, &dpni_stats);
|
|
if (err == -EINVAL)
|
|
/* Older firmware versions don't support all pages */
|
|
memset(&dpni_stats, 0, sizeof(dpni_stats));
|
|
--- a/drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h
|
|
+++ b/drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h
|
|
@@ -70,7 +70,7 @@
|
|
#define DPNI_CMDID_CLR_FS_ENT DPNI_CMD(0x246)
|
|
|
|
#define DPNI_CMDID_SET_TX_PRIORITIES DPNI_CMD_V2(0x250)
|
|
-#define DPNI_CMDID_GET_STATISTICS DPNI_CMD(0x25D)
|
|
+#define DPNI_CMDID_GET_STATISTICS DPNI_CMD_V2(0x25D)
|
|
#define DPNI_CMDID_RESET_STATISTICS DPNI_CMD(0x25E)
|
|
#define DPNI_CMDID_GET_QUEUE DPNI_CMD(0x25F)
|
|
#define DPNI_CMDID_SET_QUEUE DPNI_CMD(0x260)
|
|
@@ -287,6 +287,7 @@ struct dpni_rsp_get_tx_data_offset {
|
|
|
|
struct dpni_cmd_get_statistics {
|
|
u8 page_number;
|
|
+ u8 param;
|
|
};
|
|
|
|
struct dpni_rsp_get_statistics {
|
|
--- a/drivers/net/ethernet/freescale/dpaa2/dpni.c
|
|
+++ b/drivers/net/ethernet/freescale/dpaa2/dpni.c
|
|
@@ -1604,6 +1604,8 @@ int dpni_get_queue(struct fsl_mc_io *mc_
|
|
* @token: Token of DPNI object
|
|
* @page: Selects the statistics page to retrieve, see
|
|
* DPNI_GET_STATISTICS output. Pages are numbered 0 to 6.
|
|
+ * @param: Custom parameter for some pages used to select a certain
|
|
+ * statistic source, for example the TC.
|
|
* @stat: Structure containing the statistics
|
|
*
|
|
* Return: '0' on Success; Error code otherwise.
|
|
@@ -1612,6 +1614,7 @@ int dpni_get_statistics(struct fsl_mc_io
|
|
u32 cmd_flags,
|
|
u16 token,
|
|
u8 page,
|
|
+ u8 param,
|
|
union dpni_statistics *stat)
|
|
{
|
|
struct fsl_mc_command cmd = { 0 };
|
|
@@ -1625,6 +1628,7 @@ int dpni_get_statistics(struct fsl_mc_io
|
|
token);
|
|
cmd_params = (struct dpni_cmd_get_statistics *)cmd.params;
|
|
cmd_params->page_number = page;
|
|
+ cmd_params->param = param;
|
|
|
|
/* send command to mc */
|
|
err = mc_send_command(mc_io, &cmd);
|
|
--- a/drivers/net/ethernet/freescale/dpaa2/dpni.h
|
|
+++ b/drivers/net/ethernet/freescale/dpaa2/dpni.h
|
|
@@ -494,6 +494,7 @@ int dpni_get_statistics(struct fsl_mc_io
|
|
u32 cmd_flags,
|
|
u16 token,
|
|
u8 page,
|
|
+ u8 param,
|
|
union dpni_statistics *stat);
|
|
|
|
int dpni_reset_statistics(struct fsl_mc_io *mc_io,
|