RE: [PATCH net-next 0/9] net: add phylink managed EEE support
From: Jiawen Wu <jiawenwu@trustnetic.com>
Date: 2025-01-20 01:54:47
Also in:
netdev
On Fri, Jan 17, 2025 8:24 PM, Russell King (Oracle) wrote:
quoted hunk ↗ jump to hunk
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.