net: dsa: microchip: lan937x: add dsa_tag_protocol
authorArun Ramadoss <arun.ramadoss@microchip.com>
Fri, 1 Jul 2022 15:02:23 +0000 (20:32 +0530)
committerDavid S. Miller <davem@davemloft.net>
Sat, 2 Jul 2022 15:34:05 +0000 (16:34 +0100)
This patch update the ksz_get_tag_protocol to return LAN937x specific
tag if the chip id matches one of LAN937x series switch

Signed-off-by: Arun Ramadoss <arun.ramadoss@microchip.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/microchip/ksz_common.c
drivers/net/dsa/microchip/ksz_common.h

index 83e4459..07b6f34 100644 (file)
@@ -1254,6 +1254,9 @@ static enum dsa_tag_protocol ksz_get_tag_protocol(struct dsa_switch *ds,
            dev->chip_id == KSZ9567_CHIP_ID)
                proto = DSA_TAG_PROTO_KSZ9477;
 
+       if (is_lan937x(dev))
+               proto = DSA_TAG_PROTO_LAN937X_VALUE;
+
        return proto;
 }
 
index 5f69dc8..bf4f3f3 100644 (file)
@@ -403,6 +403,15 @@ static inline void ksz_regmap_unlock(void *__mtx)
        mutex_unlock(mtx);
 }
 
+static inline int is_lan937x(struct ksz_device *dev)
+{
+       return dev->chip_id == LAN9370_CHIP_ID ||
+               dev->chip_id == LAN9371_CHIP_ID ||
+               dev->chip_id == LAN9372_CHIP_ID ||
+               dev->chip_id == LAN9373_CHIP_ID ||
+               dev->chip_id == LAN9374_CHIP_ID;
+}
+
 /* STP State Defines */
 #define PORT_TX_ENABLE                 BIT(2)
 #define PORT_RX_ENABLE                 BIT(1)