Message ID | 20240516070852.1953381-1-o.rempel@pengutronix.de (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net,v1,1/1] net: dsa: microchip: Correct initialization order for KSZ88x3 ports | expand |
> Adjust the initialization sequence of KSZ88x3 switches to enable 802.1p > priority control on Port 2 before configuring Port 1. This change ensures the > apptrust functionality on Port 1 operates correctly, as it depends on the > priority settings of Port 2. The prior initialization sequence incorrectly > configured Port 1 first, which could lead to functional discrepancies. > > Fixes: a1ea57710c9d ("net: dsa: microchip: dcb: add special handling for > KSZ88X3 family") > Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> > --- > drivers/net/dsa/microchip/ksz_dcb.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/drivers/net/dsa/microchip/ksz_dcb.c > b/drivers/net/dsa/microchip/ksz_dcb.c > index a971063275629..19b228b849247 100644 > --- a/drivers/net/dsa/microchip/ksz_dcb.c > +++ b/drivers/net/dsa/microchip/ksz_dcb.c > @@ -805,5 +805,18 @@ int ksz_dcb_init(struct ksz_device *dev) > if (ret) > return ret; > > + /* Enable 802.1p priority control on Port 2 during switch initialization. > + * This setup is critical for the apptrust functionality on Port 1, which > + * relies on the priority settings of Port 2. Note: Port 1 is naturally > + * configured before Port 2, necessitating this configuration order. > + */ > + if (ksz_is_ksz88x3(dev)) { > + ret = ksz_prmw8(dev, KSZ_PORT_2, Nit : instead, just call return ksz_prmw8(); Reviewed-by: Hariprasad Kelam <hkelam@marvell.com> > KSZ8_REG_PORT_1_CTRL_0, > + KSZ8_PORT_802_1P_ENABLE, > + KSZ8_PORT_802_1P_ENABLE); > + if (ret) > + return ret; Thanks, Hariprasad k > + } > + > return 0; > } > -- > 2.39.2 >
diff --git a/drivers/net/dsa/microchip/ksz_dcb.c b/drivers/net/dsa/microchip/ksz_dcb.c index a971063275629..19b228b849247 100644 --- a/drivers/net/dsa/microchip/ksz_dcb.c +++ b/drivers/net/dsa/microchip/ksz_dcb.c @@ -805,5 +805,18 @@ int ksz_dcb_init(struct ksz_device *dev) if (ret) return ret; + /* Enable 802.1p priority control on Port 2 during switch initialization. + * This setup is critical for the apptrust functionality on Port 1, which + * relies on the priority settings of Port 2. Note: Port 1 is naturally + * configured before Port 2, necessitating this configuration order. + */ + if (ksz_is_ksz88x3(dev)) { + ret = ksz_prmw8(dev, KSZ_PORT_2, KSZ8_REG_PORT_1_CTRL_0, + KSZ8_PORT_802_1P_ENABLE, + KSZ8_PORT_802_1P_ENABLE); + if (ret) + return ret; + } + return 0; }
Adjust the initialization sequence of KSZ88x3 switches to enable 802.1p priority control on Port 2 before configuring Port 1. This change ensures the apptrust functionality on Port 1 operates correctly, as it depends on the priority settings of Port 2. The prior initialization sequence incorrectly configured Port 1 first, which could lead to functional discrepancies. Fixes: a1ea57710c9d ("net: dsa: microchip: dcb: add special handling for KSZ88X3 family") Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> --- drivers/net/dsa/microchip/ksz_dcb.c | 13 +++++++++++++ 1 file changed, 13 insertions(+)