net: fec: init MAC prior to mii bus probe
authorNimrod Andy <B38611@freescale.com>
Tue, 23 Jun 2015 07:32:51 +0000 (15:32 +0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 23 Jun 2015 14:10:47 +0000 (07:10 -0700)
Below case causes mii bus probe failed:
ifconfig eth0 down -> suspend/resume with Mega/fax mix off -> ifconfig eth0 up

In i.MX6SX/i.MX7D chip, Mega/fast mix off feature is supported that means most of
SOC power will be off including ENET MAC for power saving. Once ENET MAC power
off, all initialized MAC registers reset to default, so in the case, it must
init MAC prior to mii bus probe.

Signed-off-by: Fugang Duan <B38611@freescale.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/freescale/fec_main.c

index bf4cf3fbb5f2e8c05ac347e4c9bdd39b380fc184..e464aeaeed2cd9ece504a2e1494b2869dfadd138 100644 (file)
@@ -2856,12 +2856,14 @@ fec_enet_open(struct net_device *ndev)
        if (ret)
                goto err_enet_alloc;
 
+       /* Init MAC prior to mii bus probe */
+       fec_restart(ndev);
+
        /* Probe and connect to PHY when open the interface */
        ret = fec_enet_mii_probe(ndev);
        if (ret)
                goto err_enet_mii_probe;
 
-       fec_restart(ndev);
        napi_enable(&fep->napi);
        phy_start(fep->phy_dev);
        netif_tx_start_all_queues(ndev);