]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
net: emaclite: Check if phy was correctly detected
authorMichal Simek <michal.simek@xilinx.com>
Thu, 21 Nov 2013 15:17:08 +0000 (16:17 +0100)
committerMichal Simek <michal.simek@xilinx.com>
Thu, 21 Nov 2013 15:17:50 +0000 (16:17 +0100)
As tsec and fm drivers checking phydev->link
ensure that u-boot don't try access device if link is not ready.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
drivers/net/xilinx_emaclite.c

index 2eaa9a924efe8121f1ec37bf0fbb324f15b2465f..0b07238b49dde11e67bc47f49df7c8b2a5a89f62 100644 (file)
@@ -272,6 +272,11 @@ static int setup_phy(struct eth_device *dev)
        phy_config(phydev);
        phy_startup(phydev);
 
+       if (!phydev->link) {
+               printf("%s: No link.\n", phydev->dev->name);
+               return 0;
+       }
+
        /* Do not setup anything */
        return 1;
 }
@@ -330,7 +335,8 @@ static int emaclite_init(struct eth_device *dev, bd_t *bis)
        out_be32((u32 *)(dev->iobase + XEL_MDIOCTRL_OFFSET), XEL_MDIOCTRL_MDIOEN_MASK);
        temp = in_be32((u32 *)(dev->iobase + XEL_MDIOCTRL_OFFSET));
        if (temp & XEL_MDIOCTRL_MDIOEN_MASK)
-               setup_phy(dev);
+               if (!setup_phy(dev))
+                       return -1;
 #endif
 
        debug("EmacLite Initialization complete\n");