An external PHY needs settling time after power up or reset. In the bind() function an mdio bus is registered. If at this point the external PHY is still initialising, no valid PHY ID will be read and on phy_find_first() the bind() function will fail. If an external PHY is present, wait the maximum time specified in 802.3 45.2.7.1.1. Alexandru Tachici (1): net: usb: smsc95xx: fix external PHY reset Changelog v1 -> v2: - fixed typo in commit message - added reset() callback to the mii_bus - moved fsleep() call to smsc95xx_mdiobus_reset() - moved is_internal_phy bool in struct smsc95xx_priv - added an explicit PHY_RST_ command to PM_CTRL in smsc95xx_mdiobus_reset() drivers/net/usb/smsc95xx.c | 46 ++++++++++++++++++++++++++++++++++---- 1 file changed, 42 insertions(+), 4 deletions(-) -- 2.34.1