mirror of
https://github.com/torvalds/linux.git
synced 2024-11-17 01:22:07 +00:00
[netdrvr forcedeth] remove superfluous rx engine stop/start
Signed-off-by: Ayaz Abdulla <aabdulla@nvidia.com>
This commit is contained in:
parent
125d128bec
commit
4ea7f299bb
@ -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 @@
|
|||||||
* 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 @@
|
|||||||
* 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)
|
|||||||
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 @@ set_speed:
|
|||||||
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);
|
||||||
|
Loading…
Reference in New Issue
Block a user