fixed-links are currently not handled by of_mdiobus_register, skip them with a warning instead of trying pointlessly to find their PHY address:
libphy: MACB_mii_bus: probed mdio_bus f0028000.ethernet-ffffffff: fixed-link has invalid PHY address mdio_bus f0028000.ethernet-ffffffff: scan phy fixed-link at address 0 [snip] mdio_bus f0028000.ethernet-ffffffff: scan phy fixed-link at address 31 macb f0028000.ethernet: broken fixed-link specification Signed-off-by: Ahmad Fatoum <a.fat...@pengutronix.de> --- drivers/of/of_mdio.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/of/of_mdio.c b/drivers/of/of_mdio.c index e92391d6d1bd..9a7ccd299daf 100644 --- a/drivers/of/of_mdio.c +++ b/drivers/of/of_mdio.c @@ -229,6 +229,13 @@ int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np) /* Loop over the child nodes and register a phy_device for each phy */ for_each_available_child_of_node(np, child) { + if (of_phy_is_fixed_link(np)) { + /* fixed-links are handled in the MAC drivers */ + dev_warn(&mdio->dev, FW_BUG + "Skipping unexpected fixed-link in device tree"); + continue; + } + addr = of_mdio_parse_addr(&mdio->dev, child); if (addr < 0) { scanphys = true; -- 2.18.0