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)
fill_tst(card, n, vc);
}
else /* not CBR */
else if (vcc->qos.txtp.traffic_class == ATM_UBR)
{
vc->cbr_scd = 0x00000000;
vc->scq = card->scq0;
......
......@@ -1772,10 +1772,12 @@ vortex_timer(unsigned long data)
if (vortex_debug > 1)
printk(KERN_DEBUG "%s: Media %s has link beat, %x.\n",
dev->name, media_tbl[dev->if_port].name, media_status);
} else if (vortex_debug > 1) {
} else {
netif_carrier_off(dev);
printk(KERN_DEBUG "%s: Media %s has no link beat, %x.\n",
dev->name, media_tbl[dev->if_port].name, media_status);
if (vortex_debug > 1) {
printk(KERN_DEBUG "%s: Media %s has no link beat, %x.\n",
dev->name, media_tbl[dev->if_port].name, media_status);
}
}
break;
case XCVR_MII: case XCVR_NWAY:
......
......@@ -1379,6 +1379,17 @@ config EEPRO100
a module, say M here and read <file:Documentation/modules.txt> as
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
tristate "EtherExpressPro/100 support (e100, Alternate Intel driver)"
depends on NET_PCI && PCI
......
......@@ -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);
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);
/* bp->timeout_active = 0; */
......
......@@ -120,6 +120,11 @@ static int options[] = {-1, -1, -1, -1, -1, -1, -1, -1};
#include <linux/ethtool.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;
#define DEBUG_DEFAULT (NETIF_MSG_DRV | \
NETIF_MSG_HW | \
......
......@@ -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_BUFPTR, buf);
desc[DESC_EXTSTS] = extsts;
desc[DESC_EXTSTS] = cpu_to_le32(extsts);
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)
......
......@@ -1483,7 +1483,9 @@ static void pcnet32_load_multicast (struct net_device *dev)
crc = ether_crc_le(6, addrs);
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;
}
......
......@@ -1033,8 +1033,9 @@ static void bigmac_set_multicast(struct net_device *dev)
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;
struct bigmac *bp;
u8 bsizes, bsizes_more;
......@@ -1049,9 +1050,6 @@ static int __init bigmac_ether_init(struct net_device *dev, struct sbus_dev *qec
if (version_printed++ == 0)
printk(KERN_INFO "%s", version);
if (!dev)
return -ENOMEM;
/* Report what we have found to the user. */
printk(KERN_INFO "%s: BigMAC 100baseT Ethernet ", dev->name);
dev->base_addr = (long) qec_sdev;
......@@ -1180,7 +1178,6 @@ static int __init bigmac_ether_init(struct net_device *dev, struct sbus_dev *qec
/* Finish net device registration. */
dev->irq = bp->bigmac_sdev->irqs[0];
dev->dma = 0;
ether_setup(dev);
/* Put us into the list of instances attached for later driver
* exit.
......@@ -1235,7 +1232,6 @@ static int __init bigmac_match(struct sbus_dev *sdev)
static int __init bigmac_probe(void)
{
struct net_device *dev = NULL;
struct sbus_bus *sbus;
struct sbus_dev *sdev = 0;
static int called;
......@@ -1249,12 +1245,9 @@ static int __init bigmac_probe(void)
for_each_sbus(sbus) {
for_each_sbusdev(sdev, sbus) {
if (cards)
dev = NULL;
if (bigmac_match(sdev)) {
cards++;
if ((v = bigmac_ether_init(dev, sdev)))
if ((v = bigmac_ether_init(sdev)))
return v;
}
}
......
......@@ -397,6 +397,10 @@ static int gem_rxmac_interrupt(struct net_device *dev, struct gem *gp, u32 gem_s
gp->dev->name, rxmac_stat);
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_fifo_errors++;
......
......@@ -924,7 +924,6 @@ static int __init qec_ether_init(struct net_device *dev, struct sbus_dev *sdev)
sizeof(struct sunqe_buffers),
qe->buffers,
qe->buffers_dvma);
kfree(qe_devs[i]->priv);
}
kfree(qe_devs[i]);
}
......
......@@ -3063,28 +3063,12 @@ static int smctr_load_node_addr(struct net_device *dev)
unsigned int i;
__u8 r;
/* Check if node address has been specified by user. (non-0) */
for(i = 0; ((i < 6) && (dev->dev_addr[i] == 0)); i++)
for(i = 0; i < 6; 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++)
{
r = inb(ioaddr + LAR0 + i);
dev->dev_addr[i] = (char)r;
}
dev->addr_len = 6;
}
r = inb(ioaddr + LAR0 + i);
dev->dev_addr[i] = (char)r;
}
dev->addr_len = 6;
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