aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/fec.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/drivers/net/fec.c b/drivers/net/fec.c
index 54d6f86d9f6d..63eaf5de2300 100644
--- a/drivers/net/fec.c
+++ b/drivers/net/fec.c
@@ -1489,6 +1489,8 @@ fec_enet_open(struct net_device *dev)
1489 fep->sequence_done = 0; 1489 fep->sequence_done = 0;
1490 fep->link = 0; 1490 fep->link = 0;
1491 1491
1492 fec_restart(dev, 1);
1493
1492 if (fep->phy) { 1494 if (fep->phy) {
1493 mii_do_cmd(dev, fep->phy->ack_int); 1495 mii_do_cmd(dev, fep->phy->ack_int);
1494 mii_do_cmd(dev, fep->phy->config); 1496 mii_do_cmd(dev, fep->phy->config);
@@ -1505,18 +1507,14 @@ fec_enet_open(struct net_device *dev)
1505 schedule(); 1507 schedule();
1506 1508
1507 mii_do_cmd(dev, fep->phy->startup); 1509 mii_do_cmd(dev, fep->phy->startup);
1508
1509 /* Set the initial link state to true. A lot of hardware
1510 * based on this device does not implement a PHY interrupt,
1511 * so we are never notified of link change.
1512 */
1513 fep->link = 1;
1514 } else {
1515 fep->link = 1; /* lets just try it and see */
1516 /* no phy, go full duplex, it's most likely a hub chip */
1517 fec_restart(dev, 1);
1518 } 1510 }
1519 1511
1512 /* Set the initial link state to true. A lot of hardware
1513 * based on this device does not implement a PHY interrupt,
1514 * so we are never notified of link change.
1515 */
1516 fep->link = 1;
1517
1520 netif_start_queue(dev); 1518 netif_start_queue(dev);
1521 fep->opened = 1; 1519 fep->opened = 1;
1522 return 0; 1520 return 0;