blob: f04674affb3959024fb1556db6c51fe797357bd3 [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001From fa4e59c0fe5e6e2fd8ba29cdcaa03988b3d301c6 Mon Sep 17 00:00:00 2001
2From: Bogdan Purcareata <bogdan.purcareata@nxp.com>
3Date: Mon, 23 Oct 2017 08:31:25 +0000
4Subject: [PATCH] dpaa2-eth: Update dpni_get_statistics
5
6Statistics struct now contains an addditional page, with CEETM stats.
7Also update the cmd version, and the call where it's used.
8
9Signed-off-by: Bogdan Purcareata <bogdan.purcareata@nxp.com>
10---
11 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | 2 +-
12 drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c | 2 +-
13 drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h | 3 ++-
14 drivers/net/ethernet/freescale/dpaa2/dpni.c | 4 ++++
15 drivers/net/ethernet/freescale/dpaa2/dpni.h | 1 +
16 5 files changed, 9 insertions(+), 3 deletions(-)
17
18--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
19+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
20@@ -1479,7 +1479,7 @@ static void wait_for_egress_fq_empty(str
21 goto out;
22
23 do {
24- err = dpni_get_statistics(priv->mc_io, 0, priv->mc_token, 6,
25+ err = dpni_get_statistics(priv->mc_io, 0, priv->mc_token, 6, 0,
26 &stats);
27 if (err)
28 goto out;
29--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c
30+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c
31@@ -211,7 +211,7 @@ static void dpaa2_eth_get_ethtool_stats(
32 if (j == 4 || j == 5)
33 continue;
34 err = dpni_get_statistics(priv->mc_io, 0, priv->mc_token,
35- j, &dpni_stats);
36+ j, 0, &dpni_stats);
37 if (err == -EINVAL)
38 /* Older firmware versions don't support all pages */
39 memset(&dpni_stats, 0, sizeof(dpni_stats));
40--- a/drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h
41+++ b/drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h
42@@ -70,7 +70,7 @@
43 #define DPNI_CMDID_CLR_FS_ENT DPNI_CMD(0x246)
44
45 #define DPNI_CMDID_SET_TX_PRIORITIES DPNI_CMD_V2(0x250)
46-#define DPNI_CMDID_GET_STATISTICS DPNI_CMD(0x25D)
47+#define DPNI_CMDID_GET_STATISTICS DPNI_CMD_V2(0x25D)
48 #define DPNI_CMDID_RESET_STATISTICS DPNI_CMD(0x25E)
49 #define DPNI_CMDID_GET_QUEUE DPNI_CMD(0x25F)
50 #define DPNI_CMDID_SET_QUEUE DPNI_CMD(0x260)
51@@ -287,6 +287,7 @@ struct dpni_rsp_get_tx_data_offset {
52
53 struct dpni_cmd_get_statistics {
54 u8 page_number;
55+ u8 param;
56 };
57
58 struct dpni_rsp_get_statistics {
59--- a/drivers/net/ethernet/freescale/dpaa2/dpni.c
60+++ b/drivers/net/ethernet/freescale/dpaa2/dpni.c
61@@ -1604,6 +1604,8 @@ int dpni_get_queue(struct fsl_mc_io *mc_
62 * @token: Token of DPNI object
63 * @page: Selects the statistics page to retrieve, see
64 * DPNI_GET_STATISTICS output. Pages are numbered 0 to 6.
65+ * @param: Custom parameter for some pages used to select a certain
66+ * statistic source, for example the TC.
67 * @stat: Structure containing the statistics
68 *
69 * Return: '0' on Success; Error code otherwise.
70@@ -1612,6 +1614,7 @@ int dpni_get_statistics(struct fsl_mc_io
71 u32 cmd_flags,
72 u16 token,
73 u8 page,
74+ u8 param,
75 union dpni_statistics *stat)
76 {
77 struct fsl_mc_command cmd = { 0 };
78@@ -1625,6 +1628,7 @@ int dpni_get_statistics(struct fsl_mc_io
79 token);
80 cmd_params = (struct dpni_cmd_get_statistics *)cmd.params;
81 cmd_params->page_number = page;
82+ cmd_params->param = param;
83
84 /* send command to mc */
85 err = mc_send_command(mc_io, &cmd);
86--- a/drivers/net/ethernet/freescale/dpaa2/dpni.h
87+++ b/drivers/net/ethernet/freescale/dpaa2/dpni.h
88@@ -494,6 +494,7 @@ int dpni_get_statistics(struct fsl_mc_io
89 u32 cmd_flags,
90 u16 token,
91 u8 page,
92+ u8 param,
93 union dpni_statistics *stat);
94
95 int dpni_reset_statistics(struct fsl_mc_io *mc_io,