Re: [PATCH net-next] net: phy: intel-xway: workaround stale LEDs before link-up
From: Daniel Golle <daniel@makrotopia.org>
Date: 2026-01-16 02:06:54
Also in:
lkml
On Fri, Jan 16, 2026 at 02:23:18AM +0100, Andrew Lunn wrote:
On Thu, Jan 15, 2026 at 11:40:38PM +0000, Daniel Golle wrote:quoted
Due to a bug in some PHY internal firmware, manual control as well as polarity configuration of the PHY LEDs has no effect until a link has been detected at least once after reset. Apparently the LED control thread is not started until then. As a workaround, clear the BMCR_ANENABLE bit for 100ms to force the firmware to start the LED thread, allowing manual LED control and respecting LED polarity before the first link comes up. In case the legacy default LED configuration is used the bug isn't visible, so only apply the workaround in case LED configuration is present in the device tree.You should consider the case of forced links, where autoneg is disabled. Under such conditions, you should not leave autoneg enabled.
If BMCR_ANENABLE has already been disabled after a reset we can skip this workaround entirely, as doing that once for more than 100ms is all needed for the LEDs to work properly. However, I'm not aware of .config_init ever being run again after the intial attachment of the PHY and call to phy_init_hw(). All user-defined configuration happens after that, and would then remove the BMCR_ANENABLE bit just like it would do it if it was set by the hardware after reset. (note that BMCR_ANENABLE is set as part of the reset value of BMCR on this PHY) But maybe I'm getting something wrong here?