Commit c75a2a90 authored by Jeff Garzik's avatar Jeff Garzik

Merge pobox.com:/spare/repo/linux-2.6

into pobox.com:/spare/repo/netdev-2.6/misc
parents 1e3cc3f5 fe354c1b
......@@ -1730,7 +1730,7 @@ config VIA_RHINE
(e.g. VT8235).
To compile this driver as a module, choose M here. The module
will be called via-rhine.
will be called via-velocity.
config VIA_RHINE_MMIO
bool "Use MMIO instead of PIO"
......@@ -1742,18 +1742,6 @@ config VIA_RHINE_MMIO
If unsure, say Y.
config VIA_VELOCITY
tristate "VIA Velocity support"
depends on NET_PCI && PCI
select CRC32
select CRC_CCITT
select MII
help
If you have a VIA "Velocity" based network card say Y here.
To compile this driver as a module, choose M here. The module
will be called via-velocity.
config LAN_SAA9730
bool "Philips SAA9730 Ethernet support (EXPERIMENTAL)"
depends on NET_PCI && EXPERIMENTAL && MIPS
......@@ -2140,6 +2128,18 @@ config SK98LIN
say M here and read Documentation/kbuild/modules.txt. The module will
be called sk98lin. This is recommended.
config VIA_VELOCITY
tristate "VIA Velocity support"
depends on NET_PCI && PCI
select CRC32
select CRC_CCITT
select MII
help
If you have a VIA "Velocity" based network card say Y here.
To compile this driver as a module, choose M here. The module
will be called via-velocity.
config TIGON3
tristate "Broadcom Tigon3 support"
depends on PCI
......
......@@ -641,6 +641,8 @@ e1000_remove(struct pci_dev *pdev)
pci_release_regions(pdev);
free_netdev(netdev);
pci_disable_device(pdev);
}
/**
......
......@@ -549,6 +549,8 @@ static int hdlcdrv_close(struct net_device *dev)
netif_stop_queue(dev);
netif_stop_queue(dev);
if (s->ops && s->ops->close)
i = s->ops->close(dev);
if (s->skb)
......
......@@ -30,7 +30,7 @@
char ixgb_driver_name[] = "ixgb";
char ixgb_driver_string[] = "Intel(R) PRO/10GbE Network Driver";
char ixgb_driver_version[] = "1.0.66";
char ixgb_driver_version[] = "1.0.66-k2";
char ixgb_copyright[] = "Copyright (c) 2001-2004 Intel Corporation.";
/* ixgb_pci_tbl - PCI Device ID Table
......@@ -1615,8 +1615,12 @@ static irqreturn_t ixgb_intr(int irq, void *data, struct pt_regs *regs)
}
#else
for (i = 0; i < IXGB_MAX_INTR; i++)
if (!ixgb_clean_rx_irq(adapter) & !ixgb_clean_tx_irq(adapter))
if (ixgb_clean_rx_irq(adapter) == FALSE)
break;
for (i = 0; i < IXGB_MAX_INTR; i++)
if (ixgb_clean_tx_irq(adapter) == FALSE)
break;
/* if RAIDC:EN == 1 and ICR:RXDMT0 == 1, we need to
* set IMS:RXDMT0 to 1 to restart the RBD timer (POLL)
*/
......@@ -1677,7 +1681,7 @@ static boolean_t ixgb_clean_tx_irq(struct ixgb_adapter *adapter)
eop = tx_ring->buffer_info[i].next_to_watch;
eop_desc = IXGB_TX_DESC(*tx_ring, eop);
while (eop_desc->status & cpu_to_le32(IXGB_TX_DESC_STATUS_DD)) {
while (eop_desc->status & IXGB_TX_DESC_STATUS_DD) {
for (cleaned = FALSE; !cleaned;) {
tx_desc = IXGB_TX_DESC(*tx_ring, i);
......
......@@ -42,10 +42,6 @@
#include "8390.h"
#if (LINUX_VERSION_CODE < 0x02030e)
#define net_device device
#endif
#define WD_START_PG 0x00 /* First page of TX buffer */
#define CABLETRON_RX_START_PG 0x00 /* First page of RX buffer */
#define CABLETRON_RX_STOP_PG 0x30 /* Last page +1 of RX ring */
......
......@@ -653,12 +653,43 @@ static void __devexit ne2k_pci_remove_one (struct pci_dev *pdev)
pci_set_drvdata(pdev, NULL);
}
#ifdef CONFIG_PM
static int ne2k_pci_suspend (struct pci_dev *pdev, u32 state)
{
struct net_device *dev = pci_get_drvdata (pdev);
netif_device_detach(dev);
pci_save_state(pdev, pdev->saved_config_space);
pci_set_power_state(pdev, state);
return 0;
}
static int ne2k_pci_resume (struct pci_dev *pdev)
{
struct net_device *dev = pci_get_drvdata (pdev);
pci_set_power_state(pdev, 0);
pci_restore_state(pdev, pdev->saved_config_space);
NS8390_init(dev, 1);
netif_device_attach(dev);
return 0;
}
#endif /* CONFIG_PM */
static struct pci_driver ne2k_driver = {
.name = DRV_NAME,
.probe = ne2k_pci_init_one,
.remove = __devexit_p(ne2k_pci_remove_one),
.id_table = ne2k_pci_tbl,
#ifdef CONFIG_PM
.suspend = ne2k_pci_suspend,
.resume = ne2k_pci_resume,
#endif /* CONFIG_PM */
};
......
......@@ -160,6 +160,49 @@ SMC_outw(u16 val, unsigned long ioaddr, int reg)
#define SMC_insw(a, r, p, l) insw((a) + (r), p, l)
#define SMC_outsw(a, r, p, l) outsw((a) + (r), p, l)
#elif defined(CONFIG_MACH_LPD7A400) || defined(CONFIG_MACH_LPD7A404)
#include <asm/arch/constants.h> /* IOBARRIER_VIRT */
#define SMC_CAN_USE_8BIT 0
#define SMC_CAN_USE_16BIT 1
#define SMC_CAN_USE_32BIT 0
#define SMC_NOWAIT 0
#define SMC_IOBARRIER ({ barrier (); readl (IOBARRIER_VIRT); })
static inline unsigned short SMC_inw (unsigned long a, int r)
{
unsigned short v;
v = readw (a + r);
SMC_IOBARRIER;
return v;
}
static inline void SMC_outw (unsigned short v, unsigned long a, int r)
{
writew (v, a + r);
SMC_IOBARRIER;
}
static inline void SMC_insw (unsigned long a, int r, unsigned char* p, int l)
{
while (l-- > 0) {
*((unsigned short*)p)++ = readw (a + r);
SMC_IOBARRIER;
}
}
static inline void SMC_outsw (unsigned long a, int r, unsigned char* p, int l)
{
while (l-- > 0) {
writew (*((unsigned short*)p)++, a + r);
SMC_IOBARRIER;
}
}
#define RPC_LSA_DEFAULT RPC_LED_TX_RX
#define RPC_LSB_DEFAULT RPC_LED_100_10
#elif defined(CONFIG_M32R)
#define SMC_CAN_USE_8BIT 0
......
......@@ -1208,8 +1208,7 @@ static void de_adapter_wake (struct de_private *de)
pci_write_config_dword(de->pdev, PCIPM, pmctl);
/* de4x5.c delays, so we do too */
current->state = TASK_UNINTERRUPTIBLE;
schedule_timeout(msecs_to_jiffies(10));
msleep(10);
}
}
......
......@@ -5089,7 +5089,7 @@ mii_get_phy(struct net_device *dev)
lp->useMII = TRUE;
/* Search the MII address space for possible PHY devices */
for (n=0, lp->mii_cnt=0, i=1; !((i==1) && (n==1)); i=(++i)%DE4X5_MAX_MII) {
for (n=0, lp->mii_cnt=0, i=1; !((i==1) && (n==1)); i=(i+1)%DE4X5_MAX_MII) {
lp->phy[lp->active].addr = i;
if (i==0) n++; /* Count cycles */
while (de4x5_reset_phy(dev)<0) udelay(100);/* Wait for reset */
......
......@@ -234,7 +234,7 @@ static void irlan_client_ctrl_disconnect_indication(void *instance, void *sap,
ASSERT(tsap == self->client.tsap_ctrl, return;);
/* Remove frames queued on the control channel */
while ((skb = skb_dequeue(&self->client.txq))) {
while ((skb = skb_dequeue(&self->client.txq)) != NULL) {
dev_kfree_skb(skb);
}
self->client.tx_busy = FALSE;
......
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