Commit 4ea7f299 authored by Ayaz Abdulla's avatar Ayaz Abdulla Committed by Jeff Garzik

[netdrvr forcedeth] remove superfluous rx engine stop/start

Signed-off-by: default avatarAyaz Abdulla <aabdulla@nvidia.com>
parent 125d128b
......@@ -97,6 +97,7 @@
* in the second (and later) nv_open call
* 0.43: 10 Aug 2005: Add support for tx checksum.
* 0.44: 20 Aug 2005: Add support for scatter gather and segmentation.
* 0.45: 18 Sep 2005: Remove nv_stop/start_rx from every link check
*
* Known bugs:
* We suspect that on some hardware no TX done interrupts are generated.
......@@ -108,7 +109,7 @@
* DEV_NEED_TIMERIRQ will not harm you on sane hardware, only generating a few
* superfluous timer interrupts from the nic.
*/
#define FORCEDETH_VERSION "0.44"
#define FORCEDETH_VERSION "0.45"
#define DRV_NAME "forcedeth"
#include <linux/module.h>
......@@ -1612,6 +1613,17 @@ static void nv_set_multicast(struct net_device *dev)
spin_unlock_irq(&np->lock);
}
/**
* nv_update_linkspeed: Setup the MAC according to the link partner
* @dev: Network device to be configured
*
* The function queries the PHY and checks if there is a link partner.
* If yes, then it sets up the MAC accordingly. Otherwise, the MAC is
* set to 10 MBit HD.
*
* The function returns 0 if there is no link partner and 1 if there is
* a good link partner.
*/
static int nv_update_linkspeed(struct net_device *dev)
{
struct fe_priv *np = netdev_priv(dev);
......@@ -1751,13 +1763,11 @@ static int nv_update_linkspeed(struct net_device *dev)
static void nv_linkchange(struct net_device *dev)
{
if (nv_update_linkspeed(dev)) {
if (netif_carrier_ok(dev)) {
nv_stop_rx(dev);
} else {
if (!netif_carrier_ok(dev)) {
netif_carrier_on(dev);
printk(KERN_INFO "%s: link up.\n", dev->name);
}
nv_start_rx(dev);
}
} else {
if (netif_carrier_ok(dev)) {
netif_carrier_off(dev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment