ath79/mikrotik: use routerbootpart partitions
[oweals/openwrt.git] / target / linux / layerscape / patches-5.4 / 701-net-0211-dpaa2-eth-Update-dpni_get_statistics.patch
1 From fa4e59c0fe5e6e2fd8ba29cdcaa03988b3d301c6 Mon Sep 17 00:00:00 2001
2 From: Bogdan Purcareata <bogdan.purcareata@nxp.com>
3 Date: Mon, 23 Oct 2017 08:31:25 +0000
4 Subject: [PATCH] dpaa2-eth: Update dpni_get_statistics
5
6 Statistics struct now contains an addditional page, with CEETM stats.
7 Also update the cmd version, and the call where it's used.
8
9 Signed-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,