net: fec: reset phy after pinctrl setup
authorShawn Guo <shawn.guo@linaro.org>
Wed, 27 Jun 2012 03:45:20 +0000 (03:45 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 28 Jun 2012 04:22:05 +0000 (21:22 -0700)
In case that bootloader or platform initialization does not set up
fec pins, the fec_reset_phy will not be able to succeed, because
fec_reset_phy is currently called before devm_pinctrl_get_select_default.
Move fec_reset_phy call to the place between devm_pinctrl_get_select_default
and fec_enet_init to have above case be taken care.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/freescale/fec.c

index ff7f4c5115a1d098106a56ea814512c62fedd9e0..e868a377c898e128d2904d474831836f00f5e90e 100644 (file)
@@ -1593,8 +1593,6 @@ fec_probe(struct platform_device *pdev)
                fep->phy_interface = ret;
        }
 
-       fec_reset_phy(pdev);
-
        for (i = 0; i < FEC_IRQ_NUM; i++) {
                irq = platform_get_irq(pdev, i);
                if (irq < 0) {
@@ -1634,6 +1632,8 @@ fec_probe(struct platform_device *pdev)
        clk_prepare_enable(fep->clk_ahb);
        clk_prepare_enable(fep->clk_ipg);
 
+       fec_reset_phy(pdev);
+
        ret = fec_enet_init(ndev);
        if (ret)
                goto failed_init;