OSDN Git Service

staging: dpaa2-switch: export the 'no buffer' counter in ethtool
authorIonut-robert Aron <ionut-robert.aron@nxp.com>
Thu, 19 Nov 2020 16:50:15 +0000 (18:50 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 23 Nov 2020 17:02:08 +0000 (18:02 +0100)
Export the DPSW_CNT_ING_NO_BUFFER_DISCARD counter in ethtool for each
switch interface. This is useful for debugging purposes.

Signed-off-by: Ionut-robert Aron <ionut-robert.aron@nxp.com>
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Link: https://lore.kernel.org/r/20201119165017.806696-2-ciorneiioana@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/fsl-dpaa2/ethsw/dpsw-cmd.h
drivers/staging/fsl-dpaa2/ethsw/dpsw.h
drivers/staging/fsl-dpaa2/ethsw/ethsw-ethtool.c

index f100d50..c9fb688 100644 (file)
@@ -1,7 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
  * Copyright 2014-2016 Freescale Semiconductor Inc.
- * Copyright 2017-2018 NXP
+ * Copyright 2017-2020 NXP
  *
  */
 
 
 /* DPSW Version */
 #define DPSW_VER_MAJOR         8
-#define DPSW_VER_MINOR         1
+#define DPSW_VER_MINOR         5
 
 #define DPSW_CMD_BASE_VERSION  1
+#define DPSW_CMD_VERSION_2     2
 #define DPSW_CMD_ID_OFFSET     4
 
 #define DPSW_CMD_ID(id)        (((id) << DPSW_CMD_ID_OFFSET) | DPSW_CMD_BASE_VERSION)
+#define DPSW_CMD_V2(id) (((id) << DPSW_CMD_ID_OFFSET) | DPSW_CMD_VERSION_2)
 
 /* Command IDs */
 #define DPSW_CMDID_CLOSE                    DPSW_CMD_ID(0x800)
@@ -38,7 +40,7 @@
 #define DPSW_CMDID_IF_SET_TCI               DPSW_CMD_ID(0x030)
 #define DPSW_CMDID_IF_SET_STP               DPSW_CMD_ID(0x031)
 
-#define DPSW_CMDID_IF_GET_COUNTER           DPSW_CMD_ID(0x034)
+#define DPSW_CMDID_IF_GET_COUNTER           DPSW_CMD_V2(0x034)
 
 #define DPSW_CMDID_IF_ENABLE                DPSW_CMD_ID(0x03D)
 #define DPSW_CMDID_IF_DISABLE               DPSW_CMD_ID(0x03E)
index ab63ee4..9cfd8a8 100644 (file)
@@ -334,9 +334,10 @@ enum dpsw_accepted_frames {
  * @DPSW_CNT_ING_BCAST_FRAME: Counts ingress broadcast frames
  * @DPSW_CNT_ING_BCAST_BYTES: Counts ingress broadcast bytes
  * @DPSW_CNT_EGR_FRAME: Counts egress frames
- * @DPSW_CNT_EGR_BYTE: Counts eEgress bytes
+ * @DPSW_CNT_EGR_BYTE: Counts egress bytes
  * @DPSW_CNT_EGR_FRAME_DISCARD: Counts discarded egress frames
  * @DPSW_CNT_EGR_STP_FRAME_DISCARD: Counts egress STP discarded frames
+ * @DPSW_CNT_ING_NO_BUFF_DISCARD: Counts ingress no buffer discarded frames
  */
 enum dpsw_counter {
        DPSW_CNT_ING_FRAME = 0x0,
@@ -350,7 +351,8 @@ enum dpsw_counter {
        DPSW_CNT_EGR_FRAME = 0x8,
        DPSW_CNT_EGR_BYTE = 0x9,
        DPSW_CNT_EGR_FRAME_DISCARD = 0xa,
-       DPSW_CNT_EGR_STP_FRAME_DISCARD = 0xb
+       DPSW_CNT_EGR_STP_FRAME_DISCARD = 0xb,
+       DPSW_CNT_ING_NO_BUFF_DISCARD = 0xc,
 };
 
 int dpsw_if_get_counter(struct fsl_mc_io *mc_io,
index ace4a6d..fb5a14a 100644 (file)
@@ -24,7 +24,7 @@ static struct {
        {DPSW_CNT_EGR_FRAME,            "tx frames"},
        {DPSW_CNT_EGR_BYTE,             "tx bytes"},
        {DPSW_CNT_EGR_FRAME_DISCARD,    "tx discarded frames"},
-
+       {DPSW_CNT_ING_NO_BUFF_DISCARD,  "rx discarded no buffer frames"},
 };
 
 #define DPAA2_SWITCH_NUM_COUNTERS      ARRAY_SIZE(dpaa2_switch_ethtool_counters)