Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 103246
b: refs/heads/master
c: 055e511
h: refs/heads/master
v: v3
  • Loading branch information
Alan Cox authored and Jeff Garzik committed Jul 4, 2008
1 parent cba2e6a commit e016465
Show file tree
Hide file tree
Showing 8 changed files with 117 additions and 37 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 141766cf9755e773b980238da52f5f5da5c69abe
refs/heads/master: 055e5110ae0c0c1176a75b78d789294f2ff2f7af
14 changes: 7 additions & 7 deletions trunk/drivers/net/3c503.c
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ el2_pio_probe(struct net_device *dev)
#ifndef MODULE
struct net_device * __init el2_probe(int unit)
{
struct net_device *dev = alloc_ei_netdev();
struct net_device *dev = alloc_eip_netdev();
int err;

if (!dev)
Expand Down Expand Up @@ -340,7 +340,7 @@ el2_probe1(struct net_device *dev, int ioaddr)
dev->stop = &el2_close;
dev->ethtool_ops = &netdev_ethtool_ops;
#ifdef CONFIG_NET_POLL_CONTROLLER
dev->poll_controller = ei_poll;
dev->poll_controller = eip_poll;
#endif

retval = register_netdev(dev);
Expand Down Expand Up @@ -386,7 +386,7 @@ el2_open(struct net_device *dev)
outb_p(0x00, E33G_IDCFR);
if (*irqp == probe_irq_off(cookie) /* It's a good IRQ line! */
&& ((retval = request_irq(dev->irq = *irqp,
ei_interrupt, 0, dev->name, dev)) == 0))
eip_interrupt, 0, dev->name, dev)) == 0))
break;
}
} while (*++irqp);
Expand All @@ -395,13 +395,13 @@ el2_open(struct net_device *dev)
return retval;
}
} else {
if ((retval = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev))) {
if ((retval = request_irq(dev->irq, eip_interrupt, 0, dev->name, dev))) {
return retval;
}
}

el2_init_card(dev);
ei_open(dev);
eip_open(dev);
return 0;
}

Expand All @@ -412,7 +412,7 @@ el2_close(struct net_device *dev)
dev->irq = ei_status.saved_irq;
outb(EGACFR_IRQOFF, E33G_GACFR); /* disable interrupts. */

ei_close(dev);
eip_close(dev);
return 0;
}

Expand Down Expand Up @@ -698,7 +698,7 @@ init_module(void)
if (this_dev != 0) break; /* only autoprobe 1st one */
printk(KERN_NOTICE "3c503.c: Presently autoprobing (not recommended) for a single card.\n");
}
dev = alloc_ei_netdev();
dev = alloc_eip_netdev();
if (!dev)
break;
dev->irq = irq[this_dev];
Expand Down
18 changes: 16 additions & 2 deletions trunk/drivers/net/8390.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,10 @@ extern int ei_debug;

#ifdef CONFIG_NET_POLL_CONTROLLER
extern void ei_poll(struct net_device *dev);
extern void eip_poll(struct net_device *dev);
#endif

/* Without I/O delay - non ISA or later chips */
extern void NS8390_init(struct net_device *dev, int startp);
extern int ei_open(struct net_device *dev);
extern int ei_close(struct net_device *dev);
Expand All @@ -42,6 +44,17 @@ static inline struct net_device *alloc_ei_netdev(void)
return __alloc_ei_netdev(0);
}

/* With I/O delay form */
extern void NS8390p_init(struct net_device *dev, int startp);
extern int eip_open(struct net_device *dev);
extern int eip_close(struct net_device *dev);
extern irqreturn_t eip_interrupt(int irq, void *dev_id);
extern struct net_device *__alloc_eip_netdev(int size);
static inline struct net_device *alloc_eip_netdev(void)
{
return __alloc_eip_netdev(0);
}

/* You have one of these per-board */
struct ei_device {
const char *name;
Expand Down Expand Up @@ -115,13 +128,14 @@ struct ei_device {
/*
* Only generate indirect loads given a machine that needs them.
* - removed AMIGA_PCMCIA from this list, handled as ISA io now
* - the _p for generates no delay by default 8390p.c overrides this.
*/

#ifndef ei_inb
#define ei_inb(_p) inb(_p)
#define ei_outb(_v,_p) outb(_v,_p)
#define ei_inb_p(_p) inb_p(_p)
#define ei_outb_p(_v,_p) outb_p(_v,_p)
#define ei_inb_p(_p) inb(_p)
#define ei_outb_p(_v,_p) outb(_v,_p)
#endif

#ifndef EI_SHIFT
Expand Down
66 changes: 66 additions & 0 deletions trunk/drivers/net/8390p.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
/* 8390 core for ISA devices needing bus delays */

static const char version[] =
"8390p.c:v1.10cvs 9/23/94 Donald Becker (becker@cesdis.gsfc.nasa.gov)\n";

#define ei_inb(_p) inb(_p)
#define ei_outb(_v,_p) outb(_v,_p)
#define ei_inb_p(_p) inb_p(_p)
#define ei_outb_p(_v,_p) outb_p(_v,_p)

#include "lib8390.c"

int eip_open(struct net_device *dev)
{
return __ei_open(dev);
}

int eip_close(struct net_device *dev)
{
return __ei_close(dev);
}

irqreturn_t eip_interrupt(int irq, void *dev_id)
{
return __ei_interrupt(irq, dev_id);
}

#ifdef CONFIG_NET_POLL_CONTROLLER
void eip_poll(struct net_device *dev)
{
__ei_poll(dev);
}
#endif

struct net_device *__alloc_eip_netdev(int size)
{
return ____alloc_ei_netdev(size);
}

void NS8390p_init(struct net_device *dev, int startp)
{
return __NS8390_init(dev, startp);
}

EXPORT_SYMBOL(eip_open);
EXPORT_SYMBOL(eip_close);
EXPORT_SYMBOL(eip_interrupt);
#ifdef CONFIG_NET_POLL_CONTROLLER
EXPORT_SYMBOL(eip_poll);
#endif
EXPORT_SYMBOL(NS8390p_init);
EXPORT_SYMBOL(__alloc_eip_netdev);

#if defined(MODULE)

int init_module(void)
{
return 0;
}

void cleanup_module(void)
{
}

#endif /* MODULE */
MODULE_LICENSE("GPL");
10 changes: 5 additions & 5 deletions trunk/drivers/net/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -106,11 +106,11 @@ ifeq ($(CONFIG_FEC_MPC52xx_MDIO),y)
endif
obj-$(CONFIG_68360_ENET) += 68360enet.o
obj-$(CONFIG_WD80x3) += wd.o 8390.o
obj-$(CONFIG_EL2) += 3c503.o 8390.o
obj-$(CONFIG_NE2000) += ne.o 8390.o
obj-$(CONFIG_NE2_MCA) += ne2.o 8390.o
obj-$(CONFIG_HPLAN) += hp.o 8390.o
obj-$(CONFIG_HPLAN_PLUS) += hp-plus.o 8390.o
obj-$(CONFIG_EL2) += 3c503.o 8390p.o
obj-$(CONFIG_NE2000) += ne.o 8390p.o
obj-$(CONFIG_NE2_MCA) += ne2.o 8390p.o
obj-$(CONFIG_HPLAN) += hp.o 8390p.o
obj-$(CONFIG_HPLAN_PLUS) += hp-plus.o 8390p.o
obj-$(CONFIG_ULTRA) += smc-ultra.o 8390.o
obj-$(CONFIG_ULTRAMCA) += smc-mca.o 8390.o
obj-$(CONFIG_ULTRA32) += smc-ultra32.o 8390.o
Expand Down
14 changes: 7 additions & 7 deletions trunk/drivers/net/hp.c
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ static int __init do_hp_probe(struct net_device *dev)
#ifndef MODULE
struct net_device * __init hp_probe(int unit)
{
struct net_device *dev = alloc_ei_netdev();
struct net_device *dev = alloc_eip_netdev();
int err;

if (!dev)
Expand Down Expand Up @@ -176,7 +176,7 @@ static int __init hp_probe1(struct net_device *dev, int ioaddr)
outb_p(irqmap[irq] | HP_RUN, ioaddr + HP_CONFIGURE);
outb_p( 0x00 | HP_RUN, ioaddr + HP_CONFIGURE);
if (irq == probe_irq_off(cookie) /* It's a good IRQ line! */
&& request_irq (irq, ei_interrupt, 0, DRV_NAME, dev) == 0) {
&& request_irq (irq, eip_interrupt, 0, DRV_NAME, dev) == 0) {
printk(" selecting IRQ %d.\n", irq);
dev->irq = *irqp;
break;
Expand All @@ -191,7 +191,7 @@ static int __init hp_probe1(struct net_device *dev, int ioaddr)
} else {
if (dev->irq == 2)
dev->irq = 9;
if ((retval = request_irq(dev->irq, ei_interrupt, 0, DRV_NAME, dev))) {
if ((retval = request_irq(dev->irq, eip_interrupt, 0, DRV_NAME, dev))) {
printk (" unable to get IRQ %d.\n", dev->irq);
goto out;
}
Expand All @@ -202,7 +202,7 @@ static int __init hp_probe1(struct net_device *dev, int ioaddr)
dev->open = &hp_open;
dev->stop = &hp_close;
#ifdef CONFIG_NET_POLL_CONTROLLER
dev->poll_controller = ei_poll;
dev->poll_controller = eip_poll;
#endif

ei_status.name = name;
Expand Down Expand Up @@ -231,14 +231,14 @@ static int __init hp_probe1(struct net_device *dev, int ioaddr)
static int
hp_open(struct net_device *dev)
{
ei_open(dev);
eip_open(dev);
return 0;
}

static int
hp_close(struct net_device *dev)
{
ei_close(dev);
eip_close(dev);
return 0;
}

Expand Down Expand Up @@ -421,7 +421,7 @@ init_module(void)
if (this_dev != 0) break; /* only autoprobe 1st one */
printk(KERN_NOTICE "hp.c: Presently autoprobing (not recommended) for a single card.\n");
}
dev = alloc_ei_netdev();
dev = alloc_eip_netdev();
if (!dev)
break;
dev->irq = irq[this_dev];
Expand Down
14 changes: 7 additions & 7 deletions trunk/drivers/net/ne.c
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ static int __init do_ne_probe(struct net_device *dev)
#ifndef MODULE
struct net_device * __init ne_probe(int unit)
{
struct net_device *dev = alloc_ei_netdev();
struct net_device *dev = alloc_eip_netdev();
int err;

if (!dev)
Expand Down Expand Up @@ -490,7 +490,7 @@ static int __init ne_probe1(struct net_device *dev, unsigned long ioaddr)

/* Snarf the interrupt now. There's no point in waiting since we cannot
share and the board will usually be enabled. */
ret = request_irq(dev->irq, ei_interrupt, 0, name, dev);
ret = request_irq(dev->irq, eip_interrupt, 0, name, dev);
if (ret) {
printk (" unable to get IRQ %d (errno=%d).\n", dev->irq, ret);
goto err_out;
Expand Down Expand Up @@ -534,7 +534,7 @@ static int __init ne_probe1(struct net_device *dev, unsigned long ioaddr)
dev->open = &ne_open;
dev->stop = &ne_close;
#ifdef CONFIG_NET_POLL_CONTROLLER
dev->poll_controller = ei_poll;
dev->poll_controller = eip_poll;
#endif
NS8390_init(dev, 0);

Expand All @@ -554,15 +554,15 @@ static int __init ne_probe1(struct net_device *dev, unsigned long ioaddr)

static int ne_open(struct net_device *dev)
{
ei_open(dev);
eip_open(dev);
return 0;
}

static int ne_close(struct net_device *dev)
{
if (ei_debug > 1)
printk(KERN_DEBUG "%s: Shutting down ethercard.\n", dev->name);
ei_close(dev);
eip_close(dev);
return 0;
}

Expand Down Expand Up @@ -814,7 +814,7 @@ static int __init ne_drv_probe(struct platform_device *pdev)
if (!res || irq < 0)
return -ENODEV;

dev = alloc_ei_netdev();
dev = alloc_eip_netdev();
if (!dev)
return -ENOMEM;
dev->irq = irq;
Expand Down Expand Up @@ -912,7 +912,7 @@ int __init init_module(void)
int plat_found = !ne_init();

for (this_dev = 0; this_dev < MAX_NE_CARDS; this_dev++) {
struct net_device *dev = alloc_ei_netdev();
struct net_device *dev = alloc_eip_netdev();
if (!dev)
break;
dev->irq = irq[this_dev];
Expand Down
16 changes: 8 additions & 8 deletions trunk/drivers/net/ne2.c
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,7 @@ static int __init do_ne2_probe(struct net_device *dev)
#ifndef MODULE
struct net_device * __init ne2_probe(int unit)
{
struct net_device *dev = alloc_ei_netdev();
struct net_device *dev = alloc_eip_netdev();
int err;

if (!dev)
Expand Down Expand Up @@ -457,7 +457,7 @@ static int __init ne2_probe1(struct net_device *dev, int slot)

/* Snarf the interrupt now. There's no point in waiting since we cannot
share and the board will usually be enabled. */
retval = request_irq(dev->irq, ei_interrupt, 0, DRV_NAME, dev);
retval = request_irq(dev->irq, eip_interrupt, 0, DRV_NAME, dev);
if (retval) {
printk (" unable to get IRQ %d (irqval=%d).\n",
dev->irq, retval);
Expand Down Expand Up @@ -497,9 +497,9 @@ static int __init ne2_probe1(struct net_device *dev, int slot)
dev->open = &ne_open;
dev->stop = &ne_close;
#ifdef CONFIG_NET_POLL_CONTROLLER
dev->poll_controller = ei_poll;
dev->poll_controller = eip_poll;
#endif
NS8390_init(dev, 0);
NS8390p_init(dev, 0);

retval = register_netdev(dev);
if (retval)
Expand All @@ -515,15 +515,15 @@ static int __init ne2_probe1(struct net_device *dev, int slot)

static int ne_open(struct net_device *dev)
{
ei_open(dev);
eip_open(dev);
return 0;
}

static int ne_close(struct net_device *dev)
{
if (ei_debug > 1)
printk("%s: Shutting down ethercard.\n", dev->name);
ei_close(dev);
eip_close(dev);
return 0;
}

Expand Down Expand Up @@ -748,7 +748,7 @@ static void ne_block_output(struct net_device *dev, int count,
if (time_after(jiffies, dma_start + 2*HZ/100)) { /* 20ms */
printk("%s: timeout waiting for Tx RDC.\n", dev->name);
ne_reset_8390(dev);
NS8390_init(dev,1);
NS8390p_init(dev, 1);
break;
}

Expand Down Expand Up @@ -781,7 +781,7 @@ int __init init_module(void)
int this_dev, found = 0;

for (this_dev = 0; this_dev < MAX_NE_CARDS; this_dev++) {
dev = alloc_ei_netdev();
dev = alloc_eip_netdev();
if (!dev)
break;
dev->irq = irq[this_dev];
Expand Down

0 comments on commit e016465

Please sign in to comment.