net: dsa: sja1105: stop reporting the queue levels in ethtool port counters
authorVladimir Oltean <vladimir.oltean@nxp.com>
Fri, 21 May 2021 13:16:07 +0000 (16:16 +0300)
committerDavid S. Miller <davem@davemloft.net>
Fri, 21 May 2021 21:01:41 +0000 (14:01 -0700)
The queue levels are not counters, but instead they represent the
occupancy of the MAC TX queues. Having these in ethtool port counters is
not helpful, so remove them.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/sja1105/sja1105.h
drivers/net/dsa/sja1105/sja1105_ethtool.c
drivers/net/dsa/sja1105/sja1105_spi.c

index 7ec40c4..6749dc2 100644 (file)
@@ -65,7 +65,6 @@ struct sja1105_regs {
        u64 mac_hl1[SJA1105_NUM_PORTS];
        u64 mac_hl2[SJA1105_NUM_PORTS];
        u64 ether_stats[SJA1105_NUM_PORTS];
-       u64 qlevel[SJA1105_NUM_PORTS];
 };
 
 struct sja1105_info {
index 9133a83..2d8e539 100644 (file)
@@ -6,7 +6,6 @@
 #define SJA1105_SIZE_MAC_AREA          (0x02 * 4)
 #define SJA1105_SIZE_HL1_AREA          (0x10 * 4)
 #define SJA1105_SIZE_HL2_AREA          (0x4 * 4)
-#define SJA1105_SIZE_QLEVEL_AREA       (0x8 * 4) /* 0x4 to 0xB */
 #define SJA1105_SIZE_ETHER_AREA                (0x17 * 4)
 
 struct sja1105_port_status_mac {
@@ -60,8 +59,6 @@ struct sja1105_port_status_hl2 {
        u64 n_part_drop;
        u64 n_egr_disabled;
        u64 n_not_reach;
-       u64 qlevel_hwm[8]; /* Only for P/Q/R/S */
-       u64 qlevel[8];     /* Only for P/Q/R/S */
 };
 
 struct sja1105_port_status_ether {
@@ -173,20 +170,6 @@ sja1105_port_status_hl2_unpack(void *buf,
 }
 
 static void
-sja1105pqrs_port_status_qlevel_unpack(void *buf,
-                                     struct sja1105_port_status_hl2 *status)
-{
-       /* Make pointer arithmetic work on 4 bytes */
-       u32 *p = buf;
-       int i;
-
-       for (i = 0; i < 8; i++) {
-               sja1105_unpack(p + i, &status->qlevel_hwm[i], 24, 16, 4);
-               sja1105_unpack(p + i, &status->qlevel[i],      8,  0, 4);
-       }
-}
-
-static void
 sja1105pqrs_port_status_ether_unpack(void *buf,
                                     struct sja1105_port_status_ether *status)
 {
@@ -280,7 +263,7 @@ static int sja1105_port_status_get_hl2(struct sja1105_private *priv,
                                       int port)
 {
        const struct sja1105_regs *regs = priv->info->regs;
-       u8 packed_buf[SJA1105_SIZE_QLEVEL_AREA] = {0};
+       u8 packed_buf[SJA1105_SIZE_HL2_AREA] = {0};
        int rc;
 
        rc = sja1105_xfer_buf(priv, SPI_READ, regs->mac_hl2[port], packed_buf,
@@ -290,18 +273,6 @@ static int sja1105_port_status_get_hl2(struct sja1105_private *priv,
 
        sja1105_port_status_hl2_unpack(packed_buf, status);
 
-       /* Code below is strictly P/Q/R/S specific. */
-       if (priv->info->device_id == SJA1105E_DEVICE_ID ||
-           priv->info->device_id == SJA1105T_DEVICE_ID)
-               return 0;
-
-       rc = sja1105_xfer_buf(priv, SPI_READ, regs->qlevel[port], packed_buf,
-                             SJA1105_SIZE_QLEVEL_AREA);
-       if (rc < 0)
-               return rc;
-
-       sja1105pqrs_port_status_qlevel_unpack(packed_buf, status);
-
        return 0;
 }
 
@@ -375,23 +346,6 @@ static char sja1105_port_stats[][ETH_GSTRING_LEN] = {
 };
 
 static char sja1105pqrs_extra_port_stats[][ETH_GSTRING_LEN] = {
-       /* Queue Levels */
-       "qlevel_hwm_0",
-       "qlevel_hwm_1",
-       "qlevel_hwm_2",
-       "qlevel_hwm_3",
-       "qlevel_hwm_4",
-       "qlevel_hwm_5",
-       "qlevel_hwm_6",
-       "qlevel_hwm_7",
-       "qlevel_0",
-       "qlevel_1",
-       "qlevel_2",
-       "qlevel_3",
-       "qlevel_4",
-       "qlevel_5",
-       "qlevel_6",
-       "qlevel_7",
        /* Ether Stats */
        "n_drops_nolearn",
        "n_drops_noroute",
@@ -422,7 +376,7 @@ void sja1105_get_ethtool_stats(struct dsa_switch *ds, int port, u64 *data)
 {
        struct sja1105_private *priv = ds->priv;
        struct sja1105_port_status *status;
-       int rc, i, k = 0;
+       int rc, k = 0;
 
        status = kzalloc(sizeof(*status), GFP_KERNEL);
        if (!status)
@@ -482,10 +436,6 @@ void sja1105_get_ethtool_stats(struct dsa_switch *ds, int port, u64 *data)
 
        memset(data + k, 0, ARRAY_SIZE(sja1105pqrs_extra_port_stats) *
                        sizeof(u64));
-       for (i = 0; i < 8; i++) {
-               data[k++] = status->hl2.qlevel_hwm[i];
-               data[k++] = status->hl2.qlevel[i];
-       }
        data[k++] = status->ether.n_drops_nolearn;
        data[k++] = status->ether.n_drops_noroute;
        data[k++] = status->ether.n_drops_ill_dtag;
index 5a7b404..52d53e7 100644 (file)
@@ -464,7 +464,6 @@ static struct sja1105_regs sja1105pqrs_regs = {
        .rgmii_tx_clk = {0x100016, 0x10001C, 0x100022, 0x100028, 0x10002E},
        .rmii_ref_clk = {0x100015, 0x10001B, 0x100021, 0x100027, 0x10002D},
        .rmii_ext_tx_clk = {0x100017, 0x10001D, 0x100023, 0x100029, 0x10002F},
-       .qlevel = {0x604, 0x614, 0x624, 0x634, 0x644},
        .ptpegr_ts = {0xC0, 0xC4, 0xC8, 0xCC, 0xD0},
        .ptpschtm = 0x13, /* Spans 0x13 to 0x14 */
        .ptppinst = 0x15,