diff options
-rw-r--r-- | drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c index adefc03a02c8..0e4aa3e01892 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c @@ -233,14 +233,24 @@ int stmmac_mdio_register(struct net_device *ndev) new_bus->irq = irqlist; new_bus->phy_mask = mdio_bus_data->phy_mask; new_bus->parent = priv->device; - err = of_mdiobus_register(new_bus, mdio_node); - if (err != 0) { - pr_err("%s: Cannot register as MDIO bus\n", new_bus->name); - goto bus_register_fail; + if (mdio_node) { + err = of_mdiobus_register(new_bus, mdio_node); + if (err != 0) { + pr_err("%s: Cannot register as MDIO bus\n", new_bus->name); + goto bus_register_fail; + } + } else { + err = mdiobus_register(new_bus); + if (err != 0) { + pr_err("%s: Cannot register as MDIO bus\n", new_bus->name); + goto bus_register_fail; + } } - if (priv->plat->phy_node) + if (priv->plat->phy_node) { + pr_err("%s: Skipping PHY probing...\n", ndev->name); goto bus_register_done; + } found = 0; for (addr = 0; addr < PHY_MAX_ADDR; addr++) { |