Commit 79a79c6c authored by Jeff Garzik's avatar Jeff Garzik

Merge http://typhoon.bkbits.net/typhoon-2.5

into redhat.com:/garz/repo/net-drivers-2.5
parents 54bf8961 2b878abb
...@@ -1538,7 +1538,7 @@ static int ns_open(struct atm_vcc *vcc, short vpi, int vci) ...@@ -1538,7 +1538,7 @@ static int ns_open(struct atm_vcc *vcc, short vpi, int vci)
fill_tst(card, n, vc); fill_tst(card, n, vc);
} }
else /* not CBR */ else if (vcc->qos.txtp.traffic_class == ATM_UBR)
{ {
vc->cbr_scd = 0x00000000; vc->cbr_scd = 0x00000000;
vc->scq = card->scq0; vc->scq = card->scq0;
......
...@@ -1772,11 +1772,13 @@ vortex_timer(unsigned long data) ...@@ -1772,11 +1772,13 @@ vortex_timer(unsigned long data)
if (vortex_debug > 1) if (vortex_debug > 1)
printk(KERN_DEBUG "%s: Media %s has link beat, %x.\n", printk(KERN_DEBUG "%s: Media %s has link beat, %x.\n",
dev->name, media_tbl[dev->if_port].name, media_status); dev->name, media_tbl[dev->if_port].name, media_status);
} else if (vortex_debug > 1) { } else {
netif_carrier_off(dev); netif_carrier_off(dev);
if (vortex_debug > 1) {
printk(KERN_DEBUG "%s: Media %s has no link beat, %x.\n", printk(KERN_DEBUG "%s: Media %s has no link beat, %x.\n",
dev->name, media_tbl[dev->if_port].name, media_status); dev->name, media_tbl[dev->if_port].name, media_status);
} }
}
break; break;
case XCVR_MII: case XCVR_NWAY: case XCVR_MII: case XCVR_NWAY:
{ {
......
...@@ -1379,6 +1379,17 @@ config EEPRO100 ...@@ -1379,6 +1379,17 @@ config EEPRO100
a module, say M here and read <file:Documentation/modules.txt> as a module, say M here and read <file:Documentation/modules.txt> as
well as <file:Documentation/networking/net-modules.txt>. well as <file:Documentation/networking/net-modules.txt>.
config EEPRO100_PIO
bool "Use PIO instead of MMIO" if !X86_VISWS
depends on EEPRO100
default y if X86_VISWS
help
This instructs the driver to use programmed I/O ports (PIO) instead
of PCI shared memory (MMIO). This can possibly solve some problems
in case your mainboard has memory consistency issues. If unsure,
say N.
config E100 config E100
tristate "EtherExpressPro/100 support (e100, Alternate Intel driver)" tristate "EtherExpressPro/100 support (e100, Alternate Intel driver)"
depends on NET_PCI && PCI depends on NET_PCI && PCI
......
...@@ -1401,8 +1401,6 @@ static void __init bmac_probe1(struct device_node *bmac, int is_bmac_plus) ...@@ -1401,8 +1401,6 @@ static void __init bmac_probe1(struct device_node *bmac, int is_bmac_plus)
bp->queue = (struct sk_buff_head *)(bp->rx_cmds + N_RX_RING + 1); bp->queue = (struct sk_buff_head *)(bp->rx_cmds + N_RX_RING + 1);
skb_queue_head_init(bp->queue); skb_queue_head_init(bp->queue);
memset((char *) bp->tx_cmds, 0,
(N_TX_RING + N_RX_RING + 2) * sizeof(struct dbdma_cmd));
init_timer(&bp->tx_timeout); init_timer(&bp->tx_timeout);
/* bp->timeout_active = 0; */ /* bp->timeout_active = 0; */
......
...@@ -120,6 +120,11 @@ static int options[] = {-1, -1, -1, -1, -1, -1, -1, -1}; ...@@ -120,6 +120,11 @@ static int options[] = {-1, -1, -1, -1, -1, -1, -1, -1};
#include <linux/ethtool.h> #include <linux/ethtool.h>
#include <linux/mii.h> #include <linux/mii.h>
/* enable PIO instead of MMIO, if CONFIG_EEPRO100_PIO is selected */
#ifdef CONFIG_EEPRO100_PIO
#define USE_IO 1
#endif
static int debug = -1; static int debug = -1;
#define DEBUG_DEFAULT (NETIF_MSG_DRV | \ #define DEBUG_DEFAULT (NETIF_MSG_DRV | \
NETIF_MSG_HW | \ NETIF_MSG_HW | \
......
...@@ -500,9 +500,9 @@ static inline void build_rx_desc(struct ns83820 *dev, u32 *desc, dma_addr_t link ...@@ -500,9 +500,9 @@ static inline void build_rx_desc(struct ns83820 *dev, u32 *desc, dma_addr_t link
{ {
desc_addr_set(desc + DESC_LINK, link); desc_addr_set(desc + DESC_LINK, link);
desc_addr_set(desc + DESC_BUFPTR, buf); desc_addr_set(desc + DESC_BUFPTR, buf);
desc[DESC_EXTSTS] = extsts; desc[DESC_EXTSTS] = cpu_to_le32(extsts);
mb(); mb();
desc[DESC_CMDSTS] = cmdsts; desc[DESC_CMDSTS] = cpu_to_le32(cmdsts);
} }
#define nr_rx_empty(dev) ((NR_RX_DESC-2 + dev->rx_info.next_rx - dev->rx_info.next_empty) % NR_RX_DESC) #define nr_rx_empty(dev) ((NR_RX_DESC-2 + dev->rx_info.next_rx - dev->rx_info.next_empty) % NR_RX_DESC)
......
...@@ -1483,7 +1483,9 @@ static void pcnet32_load_multicast (struct net_device *dev) ...@@ -1483,7 +1483,9 @@ static void pcnet32_load_multicast (struct net_device *dev)
crc = ether_crc_le(6, addrs); crc = ether_crc_le(6, addrs);
crc = crc >> 26; crc = crc >> 26;
mcast_table [crc >> 4] |= 1 << (crc & 0xf); mcast_table [crc >> 4] = le16_to_cpu(
le16_to_cpu(mcast_table [crc >> 4]) | (1 << (crc & 0xf))
);
} }
return; return;
} }
......
...@@ -1033,8 +1033,9 @@ static void bigmac_set_multicast(struct net_device *dev) ...@@ -1033,8 +1033,9 @@ static void bigmac_set_multicast(struct net_device *dev)
sbus_writel(tmp, bregs + BMAC_RXCFG); sbus_writel(tmp, bregs + BMAC_RXCFG);
} }
static int __init bigmac_ether_init(struct net_device *dev, struct sbus_dev *qec_sdev) static int __init bigmac_ether_init(struct sbus_dev *qec_sdev)
{ {
struct net_device *dev;
static int version_printed; static int version_printed;
struct bigmac *bp; struct bigmac *bp;
u8 bsizes, bsizes_more; u8 bsizes, bsizes_more;
...@@ -1049,9 +1050,6 @@ static int __init bigmac_ether_init(struct net_device *dev, struct sbus_dev *qec ...@@ -1049,9 +1050,6 @@ static int __init bigmac_ether_init(struct net_device *dev, struct sbus_dev *qec
if (version_printed++ == 0) if (version_printed++ == 0)
printk(KERN_INFO "%s", version); printk(KERN_INFO "%s", version);
if (!dev)
return -ENOMEM;
/* Report what we have found to the user. */ /* Report what we have found to the user. */
printk(KERN_INFO "%s: BigMAC 100baseT Ethernet ", dev->name); printk(KERN_INFO "%s: BigMAC 100baseT Ethernet ", dev->name);
dev->base_addr = (long) qec_sdev; dev->base_addr = (long) qec_sdev;
...@@ -1180,7 +1178,6 @@ static int __init bigmac_ether_init(struct net_device *dev, struct sbus_dev *qec ...@@ -1180,7 +1178,6 @@ static int __init bigmac_ether_init(struct net_device *dev, struct sbus_dev *qec
/* Finish net device registration. */ /* Finish net device registration. */
dev->irq = bp->bigmac_sdev->irqs[0]; dev->irq = bp->bigmac_sdev->irqs[0];
dev->dma = 0; dev->dma = 0;
ether_setup(dev);
/* Put us into the list of instances attached for later driver /* Put us into the list of instances attached for later driver
* exit. * exit.
...@@ -1235,7 +1232,6 @@ static int __init bigmac_match(struct sbus_dev *sdev) ...@@ -1235,7 +1232,6 @@ static int __init bigmac_match(struct sbus_dev *sdev)
static int __init bigmac_probe(void) static int __init bigmac_probe(void)
{ {
struct net_device *dev = NULL;
struct sbus_bus *sbus; struct sbus_bus *sbus;
struct sbus_dev *sdev = 0; struct sbus_dev *sdev = 0;
static int called; static int called;
...@@ -1249,12 +1245,9 @@ static int __init bigmac_probe(void) ...@@ -1249,12 +1245,9 @@ static int __init bigmac_probe(void)
for_each_sbus(sbus) { for_each_sbus(sbus) {
for_each_sbusdev(sdev, sbus) { for_each_sbusdev(sdev, sbus) {
if (cards)
dev = NULL;
if (bigmac_match(sdev)) { if (bigmac_match(sdev)) {
cards++; cards++;
if ((v = bigmac_ether_init(dev, sdev))) if ((v = bigmac_ether_init(sdev)))
return v; return v;
} }
} }
......
...@@ -397,6 +397,10 @@ static int gem_rxmac_interrupt(struct net_device *dev, struct gem *gp, u32 gem_s ...@@ -397,6 +397,10 @@ static int gem_rxmac_interrupt(struct net_device *dev, struct gem *gp, u32 gem_s
gp->dev->name, rxmac_stat); gp->dev->name, rxmac_stat);
if (rxmac_stat & MAC_RXSTAT_OFLW) { if (rxmac_stat & MAC_RXSTAT_OFLW) {
u32 smac = readl(gp->regs + MAC_SMACHINE);
printk(KERN_ERR "%s: RX MAC fifo overflow smac[%08x].\n",
dev->name, smac);
gp->net_stats.rx_over_errors++; gp->net_stats.rx_over_errors++;
gp->net_stats.rx_fifo_errors++; gp->net_stats.rx_fifo_errors++;
......
...@@ -924,7 +924,6 @@ static int __init qec_ether_init(struct net_device *dev, struct sbus_dev *sdev) ...@@ -924,7 +924,6 @@ static int __init qec_ether_init(struct net_device *dev, struct sbus_dev *sdev)
sizeof(struct sunqe_buffers), sizeof(struct sunqe_buffers),
qe->buffers, qe->buffers,
qe->buffers_dvma); qe->buffers_dvma);
kfree(qe_devs[i]->priv);
} }
kfree(qe_devs[i]); kfree(qe_devs[i]);
} }
......
...@@ -3063,28 +3063,12 @@ static int smctr_load_node_addr(struct net_device *dev) ...@@ -3063,28 +3063,12 @@ static int smctr_load_node_addr(struct net_device *dev)
unsigned int i; unsigned int i;
__u8 r; __u8 r;
/* Check if node address has been specified by user. (non-0) */
for(i = 0; ((i < 6) && (dev->dev_addr[i] == 0)); i++)
{
if(i != 6)
{
for(i = 0; i < 6; i++)
{
r = inb(ioaddr + LAR0 + i);
dev->dev_addr[i] = (char)r;
}
dev->addr_len = 6;
}
else /* Node addr. not given by user, read it from board. */
{
for(i = 0; i < 6; i++) for(i = 0; i < 6; i++)
{ {
r = inb(ioaddr + LAR0 + i); r = inb(ioaddr + LAR0 + i);
dev->dev_addr[i] = (char)r; dev->dev_addr[i] = (char)r;
} }
dev->addr_len = 6; dev->addr_len = 6;
}
}
return (0); return (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