On Mon, Jun 19, 2023 at 10:16:32AM +0200, Rasmus Villemoes wrote:
The errata sheets for both ksz9477 and ksz9567 begin with
IMPORTANT NOTE
Multiple errata workarounds in this document call for changing PHY registers for each PHY port. PHY registers 0x0 to 0x1F are in the address range 0xN100 to 0xN13F, while indirect (MMD) PHY registers are accessed via the PHY MMD Setup Register and the PHY MMD Data Register.
Before configuring the PHY MMD registers, it is necessary to set the PHY to 100 Mbps speed with auto-negotiation disabled by writing to register 0xN100-0xN101. After writing the MMD registers, and after all errata workarounds that involve PHY register settings, write register 0xN100-0xN101 again to enable and restart auto-negotiation.
Without that explicit auto-neg restart, we do sometimes have problems establishing link.
Rather than writing back the hardcoded 0x1340 value the errata sheet suggests (which likely just corresponds to the most common strap configuration), restore the original value, setting the PORT_AUTO_NEG_RESTART bit if PORT_AUTO_NEG_ENABLE is set.
Fixes: 1fc33199185d ("net: dsa: microchip: Add PHY errata workarounds") Cc: stable@vger.kernel.org Signed-off-by: Rasmus Villemoes linux@rasmusvillemoes.dk
While I do believe this is a fix, I don't think it's post-rc7 material, hence targeting net-next with cc stable.
Hi Rasmus,
unfortunately this does not seem to apply to net-next. Please consider rebasing and reposting. Please include Andrew's Reviewed-by tag unless there are substantial changes (seems unlikely).