On Mon, Aug 20, 2018 at 02:12:35PM +0200, Ahmad Fatoum wrote: > The referenced commit broke initializing macb on the EVB-KSZ9477 eval board. > There, of_mdiobus_register was called even for the fixed-link representing > the SPI-connected switch PHY, with the result that the driver attempts to > enumerate PHYs on a non-existent MDIO bus: > > libphy: MACB_mii_bus: probed So there are two different things here: > 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 These are the result of the fixed-link being considered a PHY in of_mdiobus_register(). Patch 2 fixes that, turns it into a single warning. > macb f0028000.ethernet: broken fixed-link specification Why is of_phy_register_fixed_link(np) failing? > > Cc: <stable@xxxxxxxxxxxxxxx> > Fixes: 739de9a1563a ("net: macb: Reorganize macb_mii bringup") > Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> > --- > drivers/net/ethernet/cadence/macb_main.c | 27 +++++++++++++++--------- > 1 file changed, 17 insertions(+), 10 deletions(-) > > Fixes since v1: > Added one more error path for failing to register fixed-link > Fixed a whitespace issue > > > diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c > index dc09f9a8a49b..ef6ce8691443 100644 > --- a/drivers/net/ethernet/cadence/macb_main.c > +++ b/drivers/net/ethernet/cadence/macb_main.c > @@ -482,11 +482,6 @@ static int macb_mii_probe(struct net_device *dev) > > if (np) { > if (of_phy_is_fixed_link(np)) { > - if (of_phy_register_fixed_link(np) < 0) { > - dev_err(&bp->pdev->dev, > - "broken fixed-link specification\n"); > - return -ENODEV; > - } As a separate patch, please can you use the error code which of_phy_register_fixed_link() returns, not -ENODEV. It is possible it is returning EPROBE_DEFER. Andrew