提交 4ea7f299 编写于 作者: A Ayaz Abdulla 提交者: Jeff Garzik

[netdrvr forcedeth] remove superfluous rx engine stop/start

Signed-off-by: NAyaz Abdulla <aabdulla@nvidia.com>
上级 125d128b
...@@ -80,7 +80,7 @@ ...@@ -80,7 +80,7 @@
* into nv_close, otherwise reenabling for wol can * into nv_close, otherwise reenabling for wol can
* cause DMA to kfree'd memory. * cause DMA to kfree'd memory.
* 0.31: 14 Nov 2004: ethtool support for getting/setting link * 0.31: 14 Nov 2004: ethtool support for getting/setting link
* capabilities. * capabilities.
* 0.32: 16 Apr 2005: RX_ERROR4 handling added. * 0.32: 16 Apr 2005: RX_ERROR4 handling added.
* 0.33: 16 May 2005: Support for MCP51 added. * 0.33: 16 May 2005: Support for MCP51 added.
* 0.34: 18 Jun 2005: Add DEV_NEED_LINKTIMER to all nForce nics. * 0.34: 18 Jun 2005: Add DEV_NEED_LINKTIMER to all nForce nics.
...@@ -89,14 +89,15 @@ ...@@ -89,14 +89,15 @@
* 0.37: 10 Jul 2005: Additional ethtool support, cleanup of pci id list * 0.37: 10 Jul 2005: Additional ethtool support, cleanup of pci id list
* 0.38: 16 Jul 2005: tx irq rewrite: Use global flags instead of * 0.38: 16 Jul 2005: tx irq rewrite: Use global flags instead of
* per-packet flags. * per-packet flags.
* 0.39: 18 Jul 2005: Add 64bit descriptor support. * 0.39: 18 Jul 2005: Add 64bit descriptor support.
* 0.40: 19 Jul 2005: Add support for mac address change. * 0.40: 19 Jul 2005: Add support for mac address change.
* 0.41: 30 Jul 2005: Write back original MAC in nv_close instead * 0.41: 30 Jul 2005: Write back original MAC in nv_close instead
* of nv_remove * of nv_remove
* 0.42: 06 Aug 2005: Fix lack of link speed initialization * 0.42: 06 Aug 2005: Fix lack of link speed initialization
* in the second (and later) nv_open call * in the second (and later) nv_open call
* 0.43: 10 Aug 2005: Add support for tx checksum. * 0.43: 10 Aug 2005: Add support for tx checksum.
* 0.44: 20 Aug 2005: Add support for scatter gather and segmentation. * 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: * Known bugs:
* We suspect that on some hardware no TX done interrupts are generated. * We suspect that on some hardware no TX done interrupts are generated.
...@@ -108,7 +109,7 @@ ...@@ -108,7 +109,7 @@
* DEV_NEED_TIMERIRQ will not harm you on sane hardware, only generating a few * DEV_NEED_TIMERIRQ will not harm you on sane hardware, only generating a few
* superfluous timer interrupts from the nic. * superfluous timer interrupts from the nic.
*/ */
#define FORCEDETH_VERSION "0.44" #define FORCEDETH_VERSION "0.45"
#define DRV_NAME "forcedeth" #define DRV_NAME "forcedeth"
#include <linux/module.h> #include <linux/module.h>
...@@ -1612,6 +1613,17 @@ static void nv_set_multicast(struct net_device *dev) ...@@ -1612,6 +1613,17 @@ static void nv_set_multicast(struct net_device *dev)
spin_unlock_irq(&np->lock); 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) static int nv_update_linkspeed(struct net_device *dev)
{ {
struct fe_priv *np = netdev_priv(dev); struct fe_priv *np = netdev_priv(dev);
...@@ -1751,13 +1763,11 @@ static int nv_update_linkspeed(struct net_device *dev) ...@@ -1751,13 +1763,11 @@ static int nv_update_linkspeed(struct net_device *dev)
static void nv_linkchange(struct net_device *dev) static void nv_linkchange(struct net_device *dev)
{ {
if (nv_update_linkspeed(dev)) { if (nv_update_linkspeed(dev)) {
if (netif_carrier_ok(dev)) { if (!netif_carrier_ok(dev)) {
nv_stop_rx(dev);
} else {
netif_carrier_on(dev); netif_carrier_on(dev);
printk(KERN_INFO "%s: link up.\n", dev->name); printk(KERN_INFO "%s: link up.\n", dev->name);
nv_start_rx(dev);
} }
nv_start_rx(dev);
} else { } else {
if (netif_carrier_ok(dev)) { if (netif_carrier_ok(dev)) {
netif_carrier_off(dev); netif_carrier_off(dev);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册