Commit 582e0be9 authored by Jeff Garzik's avatar Jeff Garzik

Merge pobox.com:/garz/repo/netdev-2.6/e100

into pobox.com:/garz/repo/net-drivers-2.6
parents 714d25d2 5db26959
Linux* Base Driver for the Intel(R) PRO/100 Family of Adapters Linux* Base Driver for the Intel(R) PRO/100 Family of Adapters
============================================================== ==============================================================
September 13, 2004 November 17, 2004
Contents Contents
...@@ -18,9 +18,7 @@ In This Release ...@@ -18,9 +18,7 @@ In This Release
=============== ===============
This file describes the Linux* Base Driver for the Intel(R) PRO/100 Family of This file describes the Linux* Base Driver for the Intel(R) PRO/100 Family of
Adapters, version 3.2.x. This driver includes support for Itanium(TM)2 and Adapters, version 3.3.x. This driver supports 2.4.x and 2.6.x kernels.
EM64T systems.
Identifying Your Adapter Identifying Your Adapter
======================== ========================
...@@ -119,12 +117,6 @@ Additional Configurations ...@@ -119,12 +117,6 @@ Additional Configurations
The latest release of ethtool can be found at: The latest release of ethtool can be found at:
http://sf.net/projects/gkernel. http://sf.net/projects/gkernel.
After ethtool is installed, ethtool-copy.h must be copied and renamed to
ethtool.h in your kernel source tree at <linux_kernel_src>/include/linux.
Backup the original ethtool.h as needed before copying. The driver then
must be recompiled in order to take advantage of the latest ethtool
features.
NOTE: This driver uses mii support from the kernel. As a result, when NOTE: This driver uses mii support from the kernel. As a result, when
there is no link, ethtool will report speed/duplex to be 10/half. there is no link, ethtool will report speed/duplex to be 10/half.
......
...@@ -155,7 +155,7 @@ ...@@ -155,7 +155,7 @@
#define DRV_NAME "e100" #define DRV_NAME "e100"
#define DRV_EXT "-NAPI" #define DRV_EXT "-NAPI"
#define DRV_VERSION "3.2.3-k2"DRV_EXT #define DRV_VERSION "3.3.6-k2"DRV_EXT
#define DRV_DESCRIPTION "Intel(R) PRO/100 Network Driver" #define DRV_DESCRIPTION "Intel(R) PRO/100 Network Driver"
#define DRV_COPYRIGHT "Copyright(c) 1999-2004 Intel Corporation" #define DRV_COPYRIGHT "Copyright(c) 1999-2004 Intel Corporation"
#define PFX DRV_NAME ": " #define PFX DRV_NAME ": "
...@@ -201,6 +201,7 @@ static struct pci_device_id e100_id_table[] = { ...@@ -201,6 +201,7 @@ static struct pci_device_id e100_id_table[] = {
INTEL_8255X_ETHERNET_DEVICE(0x1055, 5), INTEL_8255X_ETHERNET_DEVICE(0x1055, 5),
INTEL_8255X_ETHERNET_DEVICE(0x1056, 5), INTEL_8255X_ETHERNET_DEVICE(0x1056, 5),
INTEL_8255X_ETHERNET_DEVICE(0x1057, 5), INTEL_8255X_ETHERNET_DEVICE(0x1057, 5),
INTEL_8255X_ETHERNET_DEVICE(0x1059, 0),
INTEL_8255X_ETHERNET_DEVICE(0x1064, 6), INTEL_8255X_ETHERNET_DEVICE(0x1064, 6),
INTEL_8255X_ETHERNET_DEVICE(0x1065, 6), INTEL_8255X_ETHERNET_DEVICE(0x1065, 6),
INTEL_8255X_ETHERNET_DEVICE(0x1066, 6), INTEL_8255X_ETHERNET_DEVICE(0x1066, 6),
...@@ -209,7 +210,6 @@ static struct pci_device_id e100_id_table[] = { ...@@ -209,7 +210,6 @@ static struct pci_device_id e100_id_table[] = {
INTEL_8255X_ETHERNET_DEVICE(0x1069, 6), INTEL_8255X_ETHERNET_DEVICE(0x1069, 6),
INTEL_8255X_ETHERNET_DEVICE(0x106A, 6), INTEL_8255X_ETHERNET_DEVICE(0x106A, 6),
INTEL_8255X_ETHERNET_DEVICE(0x106B, 6), INTEL_8255X_ETHERNET_DEVICE(0x106B, 6),
INTEL_8255X_ETHERNET_DEVICE(0x1059, 0),
INTEL_8255X_ETHERNET_DEVICE(0x1209, 0), INTEL_8255X_ETHERNET_DEVICE(0x1209, 0),
INTEL_8255X_ETHERNET_DEVICE(0x1229, 0), INTEL_8255X_ETHERNET_DEVICE(0x1229, 0),
INTEL_8255X_ETHERNET_DEVICE(0x2449, 2), INTEL_8255X_ETHERNET_DEVICE(0x2449, 2),
...@@ -621,8 +621,7 @@ static int e100_self_test(struct nic *nic) ...@@ -621,8 +621,7 @@ static int e100_self_test(struct nic *nic)
writel(selftest | dma_addr, &nic->csr->port); writel(selftest | dma_addr, &nic->csr->port);
e100_write_flush(nic); e100_write_flush(nic);
/* Wait 10 msec for self-test to complete */ /* Wait 10 msec for self-test to complete */
set_current_state(TASK_UNINTERRUPTIBLE); msleep(10);
schedule_timeout(HZ / 100 + 1);
/* Interrupts are enabled after self-test */ /* Interrupts are enabled after self-test */
e100_disable_irq(nic); e100_disable_irq(nic);
...@@ -670,8 +669,7 @@ static void e100_eeprom_write(struct nic *nic, u16 addr_len, u16 addr, u16 data) ...@@ -670,8 +669,7 @@ static void e100_eeprom_write(struct nic *nic, u16 addr_len, u16 addr, u16 data)
e100_write_flush(nic); udelay(4); e100_write_flush(nic); udelay(4);
} }
/* Wait 10 msec for cmd to complete */ /* Wait 10 msec for cmd to complete */
set_current_state(TASK_UNINTERRUPTIBLE); msleep(10);
schedule_timeout(HZ / 100 + 1);
/* Chip deselect */ /* Chip deselect */
writeb(0, &nic->csr->eeprom_ctrl_lo); writeb(0, &nic->csr->eeprom_ctrl_lo);
...@@ -1760,8 +1758,7 @@ static int e100_loopback_test(struct nic *nic, enum loopback loopback_mode) ...@@ -1760,8 +1758,7 @@ static int e100_loopback_test(struct nic *nic, enum loopback loopback_mode)
memset(skb->data, 0xFF, ETH_DATA_LEN); memset(skb->data, 0xFF, ETH_DATA_LEN);
e100_xmit_frame(skb, nic->netdev); e100_xmit_frame(skb, nic->netdev);
set_current_state(TASK_UNINTERRUPTIBLE); msleep(10);
schedule_timeout(HZ / 100 + 1);
if(memcmp(nic->rx_to_clean->skb->data + sizeof(struct rfd), if(memcmp(nic->rx_to_clean->skb->data + sizeof(struct rfd),
skb->data, ETH_DATA_LEN)) skb->data, ETH_DATA_LEN))
...@@ -1847,8 +1844,7 @@ static void e100_get_regs(struct net_device *netdev, ...@@ -1847,8 +1844,7 @@ static void e100_get_regs(struct net_device *netdev,
mdio_read(netdev, nic->mii.phy_id, i); mdio_read(netdev, nic->mii.phy_id, i);
memset(nic->mem->dump_buf, 0, sizeof(nic->mem->dump_buf)); memset(nic->mem->dump_buf, 0, sizeof(nic->mem->dump_buf));
e100_exec_cb(nic, NULL, e100_dump); e100_exec_cb(nic, NULL, e100_dump);
set_current_state(TASK_UNINTERRUPTIBLE); msleep(10);
schedule_timeout(HZ / 100 + 1);
memcpy(&buff[2 + E100_PHY_REGS], nic->mem->dump_buf, memcpy(&buff[2 + E100_PHY_REGS], nic->mem->dump_buf,
sizeof(nic->mem->dump_buf)); sizeof(nic->mem->dump_buf));
} }
...@@ -2027,8 +2023,7 @@ static int e100_phys_id(struct net_device *netdev, u32 data) ...@@ -2027,8 +2023,7 @@ static int e100_phys_id(struct net_device *netdev, u32 data)
if(!data || data > (u32)(MAX_SCHEDULE_TIMEOUT / HZ)) if(!data || data > (u32)(MAX_SCHEDULE_TIMEOUT / HZ))
data = (u32)(MAX_SCHEDULE_TIMEOUT / HZ); data = (u32)(MAX_SCHEDULE_TIMEOUT / HZ);
mod_timer(&nic->blink_timer, jiffies); mod_timer(&nic->blink_timer, jiffies);
set_current_state(TASK_INTERRUPTIBLE); msleep_interruptible(data * 1000);
schedule_timeout(data * HZ);
del_timer_sync(&nic->blink_timer); del_timer_sync(&nic->blink_timer);
mdio_write(netdev, nic->mii.phy_id, MII_LED_CONTROL, 0); mdio_write(netdev, nic->mii.phy_id, MII_LED_CONTROL, 0);
......
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