netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1] net: phy: dp83867: Disable EEE support as not implemented
@ 2025-10-23 14:48 Emanuele Ghidoli
  2025-10-23 17:01 ` Andrew Lunn
                   ` (3 more replies)
  0 siblings, 4 replies; 17+ messages in thread
From: Emanuele Ghidoli @ 2025-10-23 14:48 UTC (permalink / raw)
  To: Andrew Lunn, Heiner Kallweit
  Cc: Emanuele Ghidoli, Russell King, Oleksij Rempel, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, netdev, linux-kernel,
	stable

From: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>

While the DP83867 PHYs report EEE capability through their feature
registers, the actual hardware does not support EEE (see Links).
When the connected MAC enables EEE, it causes link instability and
communication failures.

The issue is reproducible with a iMX8MP and relevant stmmac ethernet port.
Since the introduction of phylink-managed EEE support in the stmmac driver,
EEE is now enabled by default, leading to issues on systems using the
DP83867 PHY.

Call phy_disable_eee during phy initialization to prevent EEE from being
enabled on DP83867 PHYs.

Link: https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1445244/dp83867ir-dp83867-disable-eee-lpi
Link: https://e2e.ti.com/support/interface-group/interface/f/interface-forum/658638/dp83867ir-eee-energy-efficient-ethernet
Fixes: 2a10154abcb7 ("net: phy: dp83867: Add TI dp83867 phy")
Cc: stable@vger.kernel.org
Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
---
 drivers/net/phy/dp83867.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/net/phy/dp83867.c b/drivers/net/phy/dp83867.c
index deeefb962566..36a0c1b7f59c 100644
--- a/drivers/net/phy/dp83867.c
+++ b/drivers/net/phy/dp83867.c
@@ -738,6 +738,12 @@ static int dp83867_config_init(struct phy_device *phydev)
 			return ret;
 	}
 
+	/* Although the DP83867 reports EEE capability through the
+	 * MDIO_PCS_EEE_ABLE and MDIO_AN_EEE_ADV registers, the feature
+	 * is not actually implemented in hardware.
+	 */
+	phy_disable_eee(phydev);
+
 	if (phy_interface_is_rgmii(phydev) ||
 	    phydev->interface == PHY_INTERFACE_MODE_SGMII) {
 		val = phy_read(phydev, MII_DP83867_PHYCTRL);
-- 
2.43.0


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

end of thread, other threads:[~2025-10-27 19:26 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-23 14:48 [PATCH v1] net: phy: dp83867: Disable EEE support as not implemented Emanuele Ghidoli
2025-10-23 17:01 ` Andrew Lunn
2025-10-25  2:20 ` patchwork-bot+netdevbpf
2025-10-25  8:44 ` Russell King (Oracle)
2025-10-25  9:19   ` Oleksij Rempel
2025-10-25  9:37     ` Russell King (Oracle)
2025-10-26 23:45 ` Andrew Lunn
2025-10-27 12:57   ` Emanuele Ghidoli
2025-10-27 13:25     ` Andrew Lunn
2025-10-27 13:57       ` Oleksij Rempel
2025-10-27 14:35       ` Francesco Dolcini
2025-10-27 14:41         ` Andrew Lunn
2025-10-27 14:53     ` Russell King (Oracle)
2025-10-27 15:34       ` Emanuele Ghidoli
2025-10-27 16:44         ` Russell King (Oracle)
2025-10-27 17:23           ` Russell King (Oracle)
2025-10-27 19:26           ` Andrew Lunn

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).