]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
net: dsa: microchip: Fix wrong rx drop MIB counter for KSZ8863
authorTristram Ha <tristram.ha@microchip.com>
Wed, 23 Jul 2025 03:04:03 +0000 (20:04 -0700)
committerJakub Kicinski <kuba@kernel.org>
Fri, 25 Jul 2025 20:09:23 +0000 (13:09 -0700)
When KSZ8863 support was first added to KSZ driver the RX drop MIB
counter was somehow defined as 0x105.  The TX drop MIB counter
starts at 0x100 for port 1, 0x101 for port 2, and 0x102 for port 3, so
the RX drop MIB counter should start at 0x103 for port 1, 0x104 for
port 2, and 0x105 for port 3.

There are 5 ports for KSZ8895, so its RX drop MIB counter starts at
0x105.

Fixes: 4b20a07e103f ("net: dsa: microchip: ksz8795: add support for ksz88xx chips")
Signed-off-by: Tristram Ha <tristram.ha@microchip.com>
Reviewed-by: Oleksij Rempel <o.rempel@pengutronix.de>
Link: https://patch.msgid.link/20250723030403.56878-1-Tristram.Ha@microchip.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/dsa/microchip/ksz8.c
drivers/net/dsa/microchip/ksz8_reg.h

index be433b4e2b1ca8f10a97b3dc47ebdc28017e602f..8f55be89f8bf65b2b09c64b6dfe4e3df2c3c7272 100644 (file)
@@ -371,6 +371,9 @@ static void ksz8863_r_mib_pkt(struct ksz_device *dev, int port, u16 addr,
        addr -= dev->info->reg_mib_cnt;
        ctrl_addr = addr ? KSZ8863_MIB_PACKET_DROPPED_TX_0 :
                           KSZ8863_MIB_PACKET_DROPPED_RX_0;
+       if (ksz_is_8895_family(dev) &&
+           ctrl_addr == KSZ8863_MIB_PACKET_DROPPED_RX_0)
+               ctrl_addr = KSZ8895_MIB_PACKET_DROPPED_RX_0;
        ctrl_addr += port;
        ctrl_addr |= IND_ACC_TABLE(TABLE_MIB | TABLE_READ);
 
index 329688603a582b7f9dddc774327036edb54435f7..da80e659c64809bcdd77bd48a9d80bc79114e870 100644 (file)
 #define KSZ8795_MIB_TOTAL_TX_1         0x105
 
 #define KSZ8863_MIB_PACKET_DROPPED_TX_0 0x100
-#define KSZ8863_MIB_PACKET_DROPPED_RX_0 0x105
+#define KSZ8863_MIB_PACKET_DROPPED_RX_0 0x103
+
+#define KSZ8895_MIB_PACKET_DROPPED_RX_0 0x105
 
 #define MIB_PACKET_DROPPED             0x0000FFFF