diff options
author | Alan Cox <alan@lxorguk.ukuu.org.uk> | 2008-07-04 02:43:12 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-07-04 08:47:51 -0400 |
commit | 055e5110ae0c0c1176a75b78d789294f2ff2f7af (patch) | |
tree | c17450678079c1cf2e1affc2789d2742dbb10c64 /drivers/net/8390.h | |
parent | 141766cf9755e773b980238da52f5f5da5c69abe (diff) |
8390: Split 8390 support into a pausing and a non pausing driver core
Only a few ISA controllers need the pausing version of the 8390 core
while PCMCIA, later ISA and PCI do not. More importantly the ISA delays
can break non ISA boxes so we must use a different build of 8390.c for
the two sets of controllers.
No changes since last time as all the points of concerns raised proved to
be invalid
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/net/8390.h')
-rw-r--r-- | drivers/net/8390.h | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/drivers/net/8390.h b/drivers/net/8390.h index cf020d45aea6..8e209f5e7c11 100644 --- a/drivers/net/8390.h +++ b/drivers/net/8390.h | |||
@@ -30,8 +30,10 @@ extern int ei_debug; | |||
30 | 30 | ||
31 | #ifdef CONFIG_NET_POLL_CONTROLLER | 31 | #ifdef CONFIG_NET_POLL_CONTROLLER |
32 | extern void ei_poll(struct net_device *dev); | 32 | extern void ei_poll(struct net_device *dev); |
33 | extern void eip_poll(struct net_device *dev); | ||
33 | #endif | 34 | #endif |
34 | 35 | ||
36 | /* Without I/O delay - non ISA or later chips */ | ||
35 | extern void NS8390_init(struct net_device *dev, int startp); | 37 | extern void NS8390_init(struct net_device *dev, int startp); |
36 | extern int ei_open(struct net_device *dev); | 38 | extern int ei_open(struct net_device *dev); |
37 | extern int ei_close(struct net_device *dev); | 39 | extern int ei_close(struct net_device *dev); |
@@ -42,6 +44,17 @@ static inline struct net_device *alloc_ei_netdev(void) | |||
42 | return __alloc_ei_netdev(0); | 44 | return __alloc_ei_netdev(0); |
43 | } | 45 | } |
44 | 46 | ||
47 | /* With I/O delay form */ | ||
48 | extern void NS8390p_init(struct net_device *dev, int startp); | ||
49 | extern int eip_open(struct net_device *dev); | ||
50 | extern int eip_close(struct net_device *dev); | ||
51 | extern irqreturn_t eip_interrupt(int irq, void *dev_id); | ||
52 | extern struct net_device *__alloc_eip_netdev(int size); | ||
53 | static inline struct net_device *alloc_eip_netdev(void) | ||
54 | { | ||
55 | return __alloc_eip_netdev(0); | ||
56 | } | ||
57 | |||
45 | /* You have one of these per-board */ | 58 | /* You have one of these per-board */ |
46 | struct ei_device { | 59 | struct ei_device { |
47 | const char *name; | 60 | const char *name; |
@@ -115,13 +128,14 @@ struct ei_device { | |||
115 | /* | 128 | /* |
116 | * Only generate indirect loads given a machine that needs them. | 129 | * Only generate indirect loads given a machine that needs them. |
117 | * - removed AMIGA_PCMCIA from this list, handled as ISA io now | 130 | * - removed AMIGA_PCMCIA from this list, handled as ISA io now |
131 | * - the _p for generates no delay by default 8390p.c overrides this. | ||
118 | */ | 132 | */ |
119 | 133 | ||
120 | #ifndef ei_inb | 134 | #ifndef ei_inb |
121 | #define ei_inb(_p) inb(_p) | 135 | #define ei_inb(_p) inb(_p) |
122 | #define ei_outb(_v,_p) outb(_v,_p) | 136 | #define ei_outb(_v,_p) outb(_v,_p) |
123 | #define ei_inb_p(_p) inb_p(_p) | 137 | #define ei_inb_p(_p) inb(_p) |
124 | #define ei_outb_p(_v,_p) outb_p(_v,_p) | 138 | #define ei_outb_p(_v,_p) outb(_v,_p) |
125 | #endif | 139 | #endif |
126 | 140 | ||
127 | #ifndef EI_SHIFT | 141 | #ifndef EI_SHIFT |