public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH net v2 0/4] net: phy: smsc: robustness fixes for LAN87xx/LAN9500
@ 2025-07-03 11:49 Oleksij Rempel
  2025-07-03 11:49 ` [PATCH net v2 1/3] net: phy: smsc: Fix Auto-MDIX configuration when disabled by strap Oleksij Rempel
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Oleksij Rempel @ 2025-07-03 11:49 UTC (permalink / raw)
  To: Andrew Lunn, Heiner Kallweit, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni
  Cc: Oleksij Rempel, kernel, linux-kernel, Russell King, netdev,
	Andre Edich, Lukas Wunner

changes v2:
- drop IRQ patch.
- no other changes are made

Hi all,

The SMSC 10/100 PHYs (LAN87xx family) found in smsc95xx (lan95xx)
USB-Ethernet adapters show several quirks around the Auto-MDIX feature:

- A hardware strap (AUTOMDIX_EN) may boot the PHY in fixed-MDI mode, and
  the current driver cannot always override it.

- When Auto-MDIX is left enabled while autonegotiation is forced off,
  the PHY endlessly swaps the TX/RX pairs and never links up.

- The driver sets the enable bit for Auto-MDIX but forgets the override
  bit, so userspace requests are silently ignored.

- Rapid configuration changes can wedge the link if PHY IRQs are
  enabled.

The four patches below make the MDIX state fully predictable and prevent
link failures in every tested strap / autoneg / MDI-X permutation.

Tested on LAN9512 Eval board.

Best Regards,
Oleksij

Oleksij Rempel (3):
  net: phy: smsc: Fix Auto-MDIX configuration when disabled by strap
  net: phy: smsc: Force predictable MDI-X state on LAN87xx
  net: phy: smsc: Fix link failure in forced mode with Auto-MDIX

 drivers/net/phy/smsc.c | 57 ++++++++++++++++++++++++++++++++++++++----
 1 file changed, 52 insertions(+), 5 deletions(-)

--
2.39.5


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2025-07-09  1:29 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-03 11:49 [PATCH net v2 0/4] net: phy: smsc: robustness fixes for LAN87xx/LAN9500 Oleksij Rempel
2025-07-03 11:49 ` [PATCH net v2 1/3] net: phy: smsc: Fix Auto-MDIX configuration when disabled by strap Oleksij Rempel
2025-07-04  7:53   ` Maxime Chevallier
2025-07-03 11:49 ` [PATCH net v2 2/3] net: phy: smsc: Force predictable MDI-X state on LAN87xx Oleksij Rempel
2025-07-04  8:00   ` Maxime Chevallier
2025-07-04  8:16     ` Andrew Lunn
2025-07-03 11:49 ` [PATCH net v2 3/3] net: phy: smsc: Fix link failure in forced mode with Auto-MDIX Oleksij Rempel
2025-07-04  8:23   ` Andrew Lunn
2025-07-09  1:30 ` [PATCH net v2 0/4] net: phy: smsc: robustness fixes for LAN87xx/LAN9500 patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox