Message ID | 20240531142430.678198-5-enguerrand.de-ribaucourt@savoirfairelinux.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | Add Microchip KSZ 9897 Switch CPU PHY + Errata | expand |
Hi Enguerrand, > > diff --git a/drivers/net/dsa/microchip/ksz9477.c > b/drivers/net/dsa/microchip/ksz9477.c > index f8ad7833f5d9..343b9d7538e9 100644 > --- a/drivers/net/dsa/microchip/ksz9477.c > +++ b/drivers/net/dsa/microchip/ksz9477.c > @@ -1299,6 +1299,9 @@ int ksz9477_setup(struct dsa_switch *ds) > /* Enable REG_SW_MTU__2 reg by setting SW_JUMBO_PACKET */ > ksz_cfg(dev, REG_SW_MAC_CTRL_1, SW_JUMBO_PACKET, true); > > + /* Use collision based back pressure mode. */ > + ksz_cfg(dev, REG_SW_MAC_CTRL_1, SW_BACK_PRESSURE, false); nitpick: Comment says use collision based back pressure mode, but in the register write we are clearing it (false). From the datasheet, it mentions 1 - Carrier based back pressure 0 - Collision based back pressure. Instead of false, we can have macros like below or something similar #define SW_BACK_PRESSURE_COLLISION 0 > + > /* Now we can configure default MTU value */ > ret = regmap_update_bits(ksz_regmap_16(dev), REG_SW_MTU__2, > REG_SW_MTU_MASK, > VLAN_ETH_FRAME_LEN + ETH_FCS_LEN); > -- > 2.34.1 >
diff --git a/drivers/net/dsa/microchip/ksz9477.c b/drivers/net/dsa/microchip/ksz9477.c index f8ad7833f5d9..343b9d7538e9 100644 --- a/drivers/net/dsa/microchip/ksz9477.c +++ b/drivers/net/dsa/microchip/ksz9477.c @@ -1299,6 +1299,9 @@ int ksz9477_setup(struct dsa_switch *ds) /* Enable REG_SW_MTU__2 reg by setting SW_JUMBO_PACKET */ ksz_cfg(dev, REG_SW_MAC_CTRL_1, SW_JUMBO_PACKET, true); + /* Use collision based back pressure mode. */ + ksz_cfg(dev, REG_SW_MAC_CTRL_1, SW_BACK_PRESSURE, false); + /* Now we can configure default MTU value */ ret = regmap_update_bits(ksz_regmap_16(dev), REG_SW_MTU__2, REG_SW_MTU_MASK, VLAN_ETH_FRAME_LEN + ETH_FCS_LEN);
Errata DS80000758 states that carrier sense back pressure mode can cause link down issues in 100BASE-TX half duplex mode. The datasheet also recommends to always use the collision based back pressure mode. Fixes: b987e98e50ab ("dsa: add DSA switch driver for Microchip KSZ9477") Signed-off-by: Enguerrand de Ribaucourt <enguerrand.de-ribaucourt@savoirfairelinux.com> --- v4: - rebase on net/main - add Fixes tag v3: https://lore.kernel.org/all/20240530102436.226189-5-enguerrand.de-ribaucourt@savoirfairelinux.com/ --- drivers/net/dsa/microchip/ksz9477.c | 3 +++ 1 file changed, 3 insertions(+)