Commit d963c95b authored by Enguerrand de Ribaucourt's avatar Enguerrand de Ribaucourt Committed by David S. Miller
Browse files

net: dsa: microchip: use collision based back pressure mode



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: b987e98e ("dsa: add DSA switch driver for Microchip KSZ9477")
Signed-off-by: default avatarEnguerrand de Ribaucourt <enguerrand.de-ribaucourt@savoirfairelinux.com>
Reviewed-by: default avatarWoojung Huh <Woojung.huh@microchip.com>
Acked-by: default avatarArun Ramadoss <arun.ramadoss@microchip.com>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 54a4e5c1
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -1297,6 +1297,10 @@ 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,
		SW_BACK_PRESSURE_COLLISION);

	/* 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);
+1 −0
Original line number Diff line number Diff line
@@ -247,6 +247,7 @@
#define REG_SW_MAC_CTRL_1		0x0331

#define SW_BACK_PRESSURE		BIT(5)
#define SW_BACK_PRESSURE_COLLISION	0
#define FAIR_FLOW_CTRL			BIT(4)
#define NO_EXC_COLLISION_DROP		BIT(3)
#define SW_JUMBO_PACKET			BIT(2)