Thread (41 messages) read the whole thread 41 messages, 7 authors, 2025-02-26

Re: [PATCH net-next 0/9] net: add phylink managed EEE support

From: "Russell King (Oracle)" <linux@armlinux.org.uk>
Date: 2025-01-20 10:02:14
Also in: netdev

On Mon, Jan 20, 2025 at 09:51:29AM +0800, Jiawen Wu wrote:
On Fri, Jan 17, 2025 8:24 PM, Russell King (Oracle) wrote:
quoted
On Fri, Jan 17, 2025 at 06:17:05PM +0800, Jiawen Wu wrote:
quoted
quoted
quoted
Since merging these patches, phylink_connect_phy() can no longer be
invoked correctly in ngbe_open(). The error is returned from the function
phy_eee_rx_clock_stop(). Since EEE is not supported on our NGBE hardware.
That would mean phy_modify_mmd() is failing, but the question is why
that is. Please investigate. Thanks.
Yes, phy_modify_mmd() returns -EOPNOTSUPP. Since .read/write_mmd are
implemented in the PHY driver, but it's not supported to read/write the
register field (devnum=MDIO_MMD_PCS, regnum= MDIO_CTRL1).

So the error occurs on  __phy_read_mmd():
	if (phydev->drv && phydev->drv->read_mmd)
		return phydev->drv->read_mmd(phydev, devad, regnum);
Thanks. The patch below should fix it. Please test, meanwhile I'll
prepare a proper patch.
diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c
index 66eea3f963d3..56d411bb2547 100644
--- a/drivers/net/phy/phylink.c
+++ b/drivers/net/phy/phylink.c
@@ -2268,7 +2268,11 @@ static int phylink_bringup_phy(struct phylink *pl, struct phy_device *phy,
 	/* Explicitly configure whether the PHY is allowed to stop it's
 	 * receive clock.
 	 */
-	return phy_eee_rx_clock_stop(phy, pl->config->eee_rx_clk_stop_enable);
+	ret = phy_eee_rx_clock_stop(phy, pl->config->eee_rx_clk_stop_enable);
+	if (ret == -EOPNOTSUPP)
+		ret = 0;
+
+	return ret;
 }

 static int phylink_attach_phy(struct phylink *pl, struct phy_device *phy,
Test pass.
Thanks.
Thanks, I guess that's a tested-by then?

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help