aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNimrod Andy <B38611@freescale.com>2015-06-23 03:32:51 -0400
committerDavid S. Miller <davem@davemloft.net>2015-06-23 10:10:47 -0400
commit55dd27536671511317d80478904e4510ed1162a1 (patch)
tree5154458da1a1d8bac91060e57cbaa6234a2a2d64
parent42bcce87d763b4d22dc6d3a0c0b60c6b49820de8 (diff)
net: fec: init MAC prior to mii bus probe
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>
-rw-r--r--drivers/net/ethernet/freescale/fec_main.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c
index bf4cf3fbb5f2..e464aeaeed2c 100644
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -2856,12 +2856,14 @@ fec_enet_open(struct net_device *ndev)
2856 if (ret) 2856 if (ret)
2857 goto err_enet_alloc; 2857 goto err_enet_alloc;
2858 2858
2859 /* Init MAC prior to mii bus probe */
2860 fec_restart(ndev);
2861
2859 /* Probe and connect to PHY when open the interface */ 2862 /* Probe and connect to PHY when open the interface */
2860 ret = fec_enet_mii_probe(ndev); 2863 ret = fec_enet_mii_probe(ndev);
2861 if (ret) 2864 if (ret)
2862 goto err_enet_mii_probe; 2865 goto err_enet_mii_probe;
2863 2866
2864 fec_restart(ndev);
2865 napi_enable(&fep->napi); 2867 napi_enable(&fep->napi);
2866 phy_start(fep->phy_dev); 2868 phy_start(fep->phy_dev);
2867 netif_tx_start_all_queues(ndev); 2869 netif_tx_start_all_queues(ndev);