diff options
Diffstat (limited to 'drivers/net/ethernet/sis/sis900.c')
| -rw-r--r-- | drivers/net/ethernet/sis/sis900.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/drivers/net/ethernet/sis/sis900.c b/drivers/net/ethernet/sis/sis900.c index eb4aea3fe793..f5d7ad75e479 100644 --- a/drivers/net/ethernet/sis/sis900.c +++ b/drivers/net/ethernet/sis/sis900.c | |||
| @@ -1318,7 +1318,7 @@ static void sis900_timer(unsigned long data) | |||
| 1318 | if (duplex){ | 1318 | if (duplex){ |
| 1319 | sis900_set_mode(sis_priv, speed, duplex); | 1319 | sis900_set_mode(sis_priv, speed, duplex); |
| 1320 | sis630_set_eq(net_dev, sis_priv->chipset_rev); | 1320 | sis630_set_eq(net_dev, sis_priv->chipset_rev); |
| 1321 | netif_start_queue(net_dev); | 1321 | netif_carrier_on(net_dev); |
| 1322 | } | 1322 | } |
| 1323 | 1323 | ||
| 1324 | sis_priv->timer.expires = jiffies + HZ; | 1324 | sis_priv->timer.expires = jiffies + HZ; |
| @@ -1336,10 +1336,8 @@ static void sis900_timer(unsigned long data) | |||
| 1336 | status = sis900_default_phy(net_dev); | 1336 | status = sis900_default_phy(net_dev); |
| 1337 | mii_phy = sis_priv->mii; | 1337 | mii_phy = sis_priv->mii; |
| 1338 | 1338 | ||
| 1339 | if (status & MII_STAT_LINK){ | 1339 | if (status & MII_STAT_LINK) |
| 1340 | sis900_check_mode(net_dev, mii_phy); | 1340 | sis900_check_mode(net_dev, mii_phy); |
| 1341 | netif_carrier_on(net_dev); | ||
| 1342 | } | ||
| 1343 | } else { | 1341 | } else { |
| 1344 | /* Link ON -> OFF */ | 1342 | /* Link ON -> OFF */ |
| 1345 | if (!(status & MII_STAT_LINK)){ | 1343 | if (!(status & MII_STAT_LINK)){ |
| @@ -1612,12 +1610,6 @@ sis900_start_xmit(struct sk_buff *skb, struct net_device *net_dev) | |||
| 1612 | unsigned int index_cur_tx, index_dirty_tx; | 1610 | unsigned int index_cur_tx, index_dirty_tx; |
| 1613 | unsigned int count_dirty_tx; | 1611 | unsigned int count_dirty_tx; |
| 1614 | 1612 | ||
| 1615 | /* Don't transmit data before the complete of auto-negotiation */ | ||
| 1616 | if(!sis_priv->autong_complete){ | ||
| 1617 | netif_stop_queue(net_dev); | ||
| 1618 | return NETDEV_TX_BUSY; | ||
| 1619 | } | ||
| 1620 | |||
| 1621 | spin_lock_irqsave(&sis_priv->lock, flags); | 1613 | spin_lock_irqsave(&sis_priv->lock, flags); |
| 1622 | 1614 | ||
| 1623 | /* Calculate the next Tx descriptor entry. */ | 1615 | /* Calculate the next Tx descriptor entry. */ |
