Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ebb3e820 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6

* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6:
  WOL bugfix for 3c59x.c
  skge 1.12
  skge: add a debug interface
  skge: eeprom support
  skge: internal stats
  skge: XM PHY handling fixes
  skge: changing MTU while running causes problems
  skge: fix ram buffer size calculation
  gianfar: Fix compile regression caused by 09f75cd7
  net: Fix new EMAC driver for NAPI changes
  bonding: two small fixes for IPoIB support
  e1000e: don't poke PHY registers to retreive link status
  e1000e: fix error checks
  e1000e: Fix debug printk macro
  tokenring/3c359.c: fixed array index problem
  [netdrvr] forcedeth: remove in-driver copy of net_device_stats
  [netdrvr] forcedeth: improved probe info; dev_printk() cleanups
  forcedeth: fix NAPI rx poll function
parents e5712a6a 1a1769f3
Loading
Loading
Loading
Loading
+7 −1
Original line number Original line Diff line number Diff line
@@ -3118,7 +3118,13 @@ static void acpi_set_WOL(struct net_device *dev)
		iowrite16(SetRxFilter|RxStation|RxMulticast|RxBroadcast, ioaddr + EL3_CMD);
		iowrite16(SetRxFilter|RxStation|RxMulticast|RxBroadcast, ioaddr + EL3_CMD);
		iowrite16(RxEnable, ioaddr + EL3_CMD);
		iowrite16(RxEnable, ioaddr + EL3_CMD);


		pci_enable_wake(VORTEX_PCI(vp), 0, 1);
		if (pci_enable_wake(VORTEX_PCI(vp), PCI_D3hot, 1)) {
			printk(KERN_INFO "%s: WOL not supported.\n",
					pci_name(VORTEX_PCI(vp)));

			vp->enable_wol = 0;
			return;
		}


		/* Change the power state to D3; RxEnable doesn't take effect. */
		/* Change the power state to D3; RxEnable doesn't take effect. */
		pci_set_power_state(VORTEX_PCI(vp), PCI_D3hot);
		pci_set_power_state(VORTEX_PCI(vp), PCI_D3hot);
+10 −0
Original line number Original line Diff line number Diff line
@@ -2173,6 +2173,16 @@ config SKGE
	  To compile this driver as a module, choose M here: the module
	  To compile this driver as a module, choose M here: the module
	  will be called skge.  This is recommended.
	  will be called skge.  This is recommended.


config SKGE_DEBUG
       bool "Debugging interface"
       depends on SKGE && DEBUG_FS
       help
	 This option adds the ability to dump driver state for debugging.
	 The file debugfs/skge/ethX displays the state of the internal
	 transmit and receive rings.

	 If unsure, say N.

config SKY2
config SKY2
	tristate "SysKonnect Yukon2 support"
	tristate "SysKonnect Yukon2 support"
	depends on PCI
	depends on PCI
+5 −6
Original line number Original line Diff line number Diff line
@@ -1263,6 +1263,7 @@ static void bond_setup_by_slave(struct net_device *bond_dev,
	struct bonding *bond = bond_dev->priv;
	struct bonding *bond = bond_dev->priv;


	bond_dev->neigh_setup           = slave_dev->neigh_setup;
	bond_dev->neigh_setup           = slave_dev->neigh_setup;
	bond_dev->header_ops		= slave_dev->header_ops;


	bond_dev->type		    = slave_dev->type;
	bond_dev->type		    = slave_dev->type;
	bond_dev->hard_header_len   = slave_dev->hard_header_len;
	bond_dev->hard_header_len   = slave_dev->hard_header_len;
@@ -3351,6 +3352,9 @@ static int bond_slave_netdev_event(unsigned long event, struct net_device *slave
	switch (event) {
	switch (event) {
	case NETDEV_UNREGISTER:
	case NETDEV_UNREGISTER:
		if (bond_dev) {
		if (bond_dev) {
			if (bond->setup_by_slave)
				bond_release_and_destroy(bond_dev, slave_dev);
			else
				bond_release(bond_dev, slave_dev);
				bond_release(bond_dev, slave_dev);
		}
		}
		break;
		break;
@@ -3366,11 +3370,6 @@ static int bond_slave_netdev_event(unsigned long event, struct net_device *slave
		 * ... Or is it this?
		 * ... Or is it this?
		 */
		 */
		break;
		break;
	case NETDEV_GOING_DOWN:
		dprintk("slave %s is going down\n", slave_dev->name);
		if (bond->setup_by_slave)
			bond_release_and_destroy(bond_dev, slave_dev);
		break;
	case NETDEV_CHANGEMTU:
	case NETDEV_CHANGEMTU:
		/*
		/*
		 * TODO: Should slaves be allowed to
		 * TODO: Should slaves be allowed to
+2 −2
Original line number Original line Diff line number Diff line
@@ -22,8 +22,8 @@
#include "bond_3ad.h"
#include "bond_3ad.h"
#include "bond_alb.h"
#include "bond_alb.h"


#define DRV_VERSION	"3.2.0"
#define DRV_VERSION	"3.2.1"
#define DRV_RELDATE	"September 13, 2007"
#define DRV_RELDATE	"October 15, 2007"
#define DRV_NAME	"bonding"
#define DRV_NAME	"bonding"
#define DRV_DESCRIPTION	"Ethernet Channel Bonding Driver"
#define DRV_DESCRIPTION	"Ethernet Channel Bonding Driver"


+23 −12
Original line number Original line Diff line number Diff line
@@ -110,6 +110,7 @@ static int e1000_get_settings(struct net_device *netdev,
{
{
	struct e1000_adapter *adapter = netdev_priv(netdev);
	struct e1000_adapter *adapter = netdev_priv(netdev);
	struct e1000_hw *hw = &adapter->hw;
	struct e1000_hw *hw = &adapter->hw;
	u32 status;


	if (hw->media_type == e1000_media_type_copper) {
	if (hw->media_type == e1000_media_type_copper) {


@@ -147,16 +148,16 @@ static int e1000_get_settings(struct net_device *netdev,
		ecmd->transceiver = XCVR_EXTERNAL;
		ecmd->transceiver = XCVR_EXTERNAL;
	}
	}


	if (er32(STATUS) & E1000_STATUS_LU) {
	status = er32(STATUS);

	if (status & E1000_STATUS_LU) {
		adapter->hw.mac.ops.get_link_up_info(hw, &adapter->link_speed,
		if (status & E1000_STATUS_SPEED_1000)
						  &adapter->link_duplex);
			ecmd->speed = 1000;
		ecmd->speed = adapter->link_speed;
		else if (status & E1000_STATUS_SPEED_100)

			ecmd->speed = 100;
		/* unfortunately FULL_DUPLEX != DUPLEX_FULL
		else
		 *	  and HALF_DUPLEX != DUPLEX_HALF */
			ecmd->speed = 10;


		if (adapter->link_duplex == FULL_DUPLEX)
		if (status & E1000_STATUS_FD)
			ecmd->duplex = DUPLEX_FULL;
			ecmd->duplex = DUPLEX_FULL;
		else
		else
			ecmd->duplex = DUPLEX_HALF;
			ecmd->duplex = DUPLEX_HALF;
@@ -170,6 +171,16 @@ static int e1000_get_settings(struct net_device *netdev,
	return 0;
	return 0;
}
}


static u32 e1000_get_link(struct net_device *netdev)
{
	struct e1000_adapter *adapter = netdev_priv(netdev);
	struct e1000_hw *hw = &adapter->hw;
	u32 status;
	
	status = er32(STATUS);
	return (status & E1000_STATUS_LU);
}

static int e1000_set_spd_dplx(struct e1000_adapter *adapter, u16 spddplx)
static int e1000_set_spd_dplx(struct e1000_adapter *adapter, u16 spddplx)
{
{
	struct e1000_mac_info *mac = &adapter->hw.mac;
	struct e1000_mac_info *mac = &adapter->hw.mac;
@@ -1451,11 +1462,11 @@ static int e1000_loopback_test(struct e1000_adapter *adapter, u64 *data)
	}
	}


	*data = e1000_setup_desc_rings(adapter);
	*data = e1000_setup_desc_rings(adapter);
	if (data)
	if (*data)
		goto out;
		goto out;


	*data = e1000_setup_loopback_test(adapter);
	*data = e1000_setup_loopback_test(adapter);
	if (data)
	if (*data)
		goto err_loopback;
		goto err_loopback;


	*data = e1000_run_loopback_test(adapter);
	*data = e1000_run_loopback_test(adapter);
@@ -1751,7 +1762,7 @@ static const struct ethtool_ops e1000_ethtool_ops = {
	.get_msglevel		= e1000_get_msglevel,
	.get_msglevel		= e1000_get_msglevel,
	.set_msglevel		= e1000_set_msglevel,
	.set_msglevel		= e1000_set_msglevel,
	.nway_reset		= e1000_nway_reset,
	.nway_reset		= e1000_nway_reset,
	.get_link		= ethtool_op_get_link,
	.get_link		= e1000_get_link,
	.get_eeprom_len		= e1000_get_eeprom_len,
	.get_eeprom_len		= e1000_get_eeprom_len,
	.get_eeprom		= e1000_get_eeprom,
	.get_eeprom		= e1000_get_eeprom,
	.set_eeprom		= e1000_set_eeprom,
	.set_eeprom		= e1000_set_eeprom,
Loading