MLK-13893 net: fec: do defer probe when mii bus not registered
authorAndy Duan <fugang.duan@nxp.com>
Tue, 7 Feb 2017 06:10:54 +0000 (14:10 +0800)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 19:58:26 +0000 (14:58 -0500)
When two MACs share one mii bus, MAC driver should do defer probe
when the mii bus not registered.

Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
drivers/net/ethernet/freescale/fec_main.c

index 73b41a3..4351a72 100644 (file)
@@ -2103,6 +2103,8 @@ static int fec_enet_mii_init(struct platform_device *pdev)
        if (node) {
                err = of_mdiobus_register(fep->mii_bus, node);
                of_node_put(node);
+       } else if (fep->phy_node) {
+               err = -EPROBE_DEFER;
        } else {
                err = mdiobus_register(fep->mii_bus);
        }
@@ -3619,8 +3621,10 @@ fec_probe(struct platform_device *pdev)
 
        init_completion(&fep->mdio_done);
        ret = fec_enet_mii_init(pdev);
-       if (ret)
+       if (ret) {
+               dev_id = 0;
                goto failed_mii_init;
+       }
 
        /* Carrier starts down, phylib will bring it up */
        netif_carrier_off(ndev);