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; |
