|
@@ -2080,6 +2080,7 @@ static void port_start(struct mv643xx_eth_private *mp)
|
|
|
mv643xx_eth_get_settings(mp->dev, &cmd);
|
|
mv643xx_eth_get_settings(mp->dev, &cmd);
|
|
|
phy_init_hw(mp->phy);
|
|
phy_init_hw(mp->phy);
|
|
|
mv643xx_eth_set_settings(mp->dev, &cmd);
|
|
mv643xx_eth_set_settings(mp->dev, &cmd);
|
|
|
|
|
+ phy_start(mp->phy);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -2275,7 +2276,8 @@ static int mv643xx_eth_stop(struct net_device *dev)
|
|
|
del_timer_sync(&mp->rx_oom);
|
|
del_timer_sync(&mp->rx_oom);
|
|
|
|
|
|
|
|
netif_carrier_off(dev);
|
|
netif_carrier_off(dev);
|
|
|
-
|
|
|
|
|
|
|
+ if (mp->phy)
|
|
|
|
|
+ phy_stop(mp->phy);
|
|
|
free_irq(dev->irq, dev);
|
|
free_irq(dev->irq, dev);
|
|
|
|
|
|
|
|
port_reset(mp);
|
|
port_reset(mp);
|