diff options
Diffstat (limited to 'drivers/net/smc-mca.c')
-rw-r--r-- | drivers/net/smc-mca.c | 60 |
1 files changed, 58 insertions, 2 deletions
diff --git a/drivers/net/smc-mca.c b/drivers/net/smc-mca.c index 990201f42ba0..f00c476064f0 100644 --- a/drivers/net/smc-mca.c +++ b/drivers/net/smc-mca.c | |||
@@ -49,7 +49,6 @@ | |||
49 | #include <asm/system.h> | 49 | #include <asm/system.h> |
50 | 50 | ||
51 | #include "8390.h" | 51 | #include "8390.h" |
52 | #include "smc-mca.h" | ||
53 | 52 | ||
54 | #define DRV_NAME "smc-mca" | 53 | #define DRV_NAME "smc-mca" |
55 | 54 | ||
@@ -100,6 +99,63 @@ module_param_array(ultra_irq, int, NULL, 0); | |||
100 | MODULE_PARM_DESC(ultra_io, "SMC Ultra/EtherEZ MCA I/O base address(es)"); | 99 | MODULE_PARM_DESC(ultra_io, "SMC Ultra/EtherEZ MCA I/O base address(es)"); |
101 | MODULE_PARM_DESC(ultra_irq, "SMC Ultra/EtherEZ MCA IRQ number(s)"); | 100 | MODULE_PARM_DESC(ultra_irq, "SMC Ultra/EtherEZ MCA IRQ number(s)"); |
102 | 101 | ||
102 | static const struct { | ||
103 | unsigned int base_addr; | ||
104 | } addr_table[] = { | ||
105 | { 0x0800 }, | ||
106 | { 0x1800 }, | ||
107 | { 0x2800 }, | ||
108 | { 0x3800 }, | ||
109 | { 0x4800 }, | ||
110 | { 0x5800 }, | ||
111 | { 0x6800 }, | ||
112 | { 0x7800 }, | ||
113 | { 0x8800 }, | ||
114 | { 0x9800 }, | ||
115 | { 0xa800 }, | ||
116 | { 0xb800 }, | ||
117 | { 0xc800 }, | ||
118 | { 0xd800 }, | ||
119 | { 0xe800 }, | ||
120 | { 0xf800 } | ||
121 | }; | ||
122 | |||
123 | #define MEM_MASK 64 | ||
124 | |||
125 | static const struct { | ||
126 | unsigned char mem_index; | ||
127 | unsigned long mem_start; | ||
128 | unsigned char num_pages; | ||
129 | } mem_table[] = { | ||
130 | { 16, 0x0c0000, 40 }, | ||
131 | { 18, 0x0c4000, 40 }, | ||
132 | { 20, 0x0c8000, 40 }, | ||
133 | { 22, 0x0cc000, 40 }, | ||
134 | { 24, 0x0d0000, 40 }, | ||
135 | { 26, 0x0d4000, 40 }, | ||
136 | { 28, 0x0d8000, 40 }, | ||
137 | { 30, 0x0dc000, 40 }, | ||
138 | {144, 0xfc0000, 40 }, | ||
139 | {148, 0xfc8000, 40 }, | ||
140 | {154, 0xfd0000, 40 }, | ||
141 | {156, 0xfd8000, 40 }, | ||
142 | { 0, 0x0c0000, 20 }, | ||
143 | { 1, 0x0c2000, 20 }, | ||
144 | { 2, 0x0c4000, 20 }, | ||
145 | { 3, 0x0c6000, 20 } | ||
146 | }; | ||
147 | |||
148 | #define IRQ_MASK 243 | ||
149 | static const struct { | ||
150 | unsigned char new_irq; | ||
151 | unsigned char old_irq; | ||
152 | } irq_table[] = { | ||
153 | { 3, 3 }, | ||
154 | { 4, 4 }, | ||
155 | { 10, 10 }, | ||
156 | { 14, 15 } | ||
157 | }; | ||
158 | |||
103 | static short smc_mca_adapter_ids[] __initdata = { | 159 | static short smc_mca_adapter_ids[] __initdata = { |
104 | 0x61c8, | 160 | 0x61c8, |
105 | 0x61c9, | 161 | 0x61c9, |
@@ -126,7 +182,7 @@ static char *smc_mca_adapter_names[] __initdata = { | |||
126 | 182 | ||
127 | static int ultra_found = 0; | 183 | static int ultra_found = 0; |
128 | 184 | ||
129 | int __init ultramca_probe(struct device *gen_dev) | 185 | static int __init ultramca_probe(struct device *gen_dev) |
130 | { | 186 | { |
131 | unsigned short ioaddr; | 187 | unsigned short ioaddr; |
132 | struct net_device *dev; | 188 | struct net_device *dev; |