diff options
Diffstat (limited to 'drivers/net/tulip/winbond-840.c')
-rw-r--r-- | drivers/net/tulip/winbond-840.c | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/drivers/net/tulip/winbond-840.c b/drivers/net/tulip/winbond-840.c index b4c0d101a7d7..eba9083da146 100644 --- a/drivers/net/tulip/winbond-840.c +++ b/drivers/net/tulip/winbond-840.c | |||
@@ -138,7 +138,7 @@ static int full_duplex[MAX_UNITS] = {-1, -1, -1, -1, -1, -1, -1, -1}; | |||
138 | #include <asm/irq.h> | 138 | #include <asm/irq.h> |
139 | 139 | ||
140 | /* These identify the driver base version and may not be removed. */ | 140 | /* These identify the driver base version and may not be removed. */ |
141 | static char version[] __devinitdata = | 141 | static char version[] = |
142 | KERN_INFO DRV_NAME ".c:v" DRV_VERSION " (2.4 port) " DRV_RELDATE " Donald Becker <becker@scyld.com>\n" | 142 | KERN_INFO DRV_NAME ".c:v" DRV_VERSION " (2.4 port) " DRV_RELDATE " Donald Becker <becker@scyld.com>\n" |
143 | KERN_INFO " http://www.scyld.com/network/drivers.html\n"; | 143 | KERN_INFO " http://www.scyld.com/network/drivers.html\n"; |
144 | 144 | ||
@@ -224,24 +224,21 @@ static const struct pci_device_id w840_pci_tbl[] = { | |||
224 | }; | 224 | }; |
225 | MODULE_DEVICE_TABLE(pci, w840_pci_tbl); | 225 | MODULE_DEVICE_TABLE(pci, w840_pci_tbl); |
226 | 226 | ||
227 | enum { | ||
228 | netdev_res_size = 128, /* size of PCI BAR resource */ | ||
229 | }; | ||
230 | |||
227 | struct pci_id_info { | 231 | struct pci_id_info { |
228 | const char *name; | 232 | const char *name; |
229 | struct match_info { | 233 | int drv_flags; /* Driver use, intended as capability flags. */ |
230 | int pci, pci_mask, subsystem, subsystem_mask; | ||
231 | int revision, revision_mask; /* Only 8 bits. */ | ||
232 | } id; | ||
233 | int io_size; /* Needed for I/O region check or ioremap(). */ | ||
234 | int drv_flags; /* Driver use, intended as capability flags. */ | ||
235 | }; | 234 | }; |
236 | static struct pci_id_info pci_id_tbl[] = { | 235 | |
237 | {"Winbond W89c840", /* Sometime a Level-One switch card. */ | 236 | static const struct pci_id_info pci_id_tbl[] __devinitdata = { |
238 | { 0x08401050, 0xffffffff, 0x81530000, 0xffff0000 }, | 237 | { /* Sometime a Level-One switch card. */ |
239 | 128, CanHaveMII | HasBrokenTx | FDXOnNoMII}, | 238 | "Winbond W89c840", CanHaveMII | HasBrokenTx | FDXOnNoMII}, |
240 | {"Winbond W89c840", { 0x08401050, 0xffffffff, }, | 239 | { "Winbond W89c840", CanHaveMII | HasBrokenTx}, |
241 | 128, CanHaveMII | HasBrokenTx}, | 240 | { "Compex RL100-ATX", CanHaveMII | HasBrokenTx}, |
242 | {"Compex RL100-ATX", { 0x201111F6, 0xffffffff,}, | 241 | { } /* terminate list. */ |
243 | 128, CanHaveMII | HasBrokenTx}, | ||
244 | {NULL,}, /* 0 terminated list. */ | ||
245 | }; | 242 | }; |
246 | 243 | ||
247 | /* This driver was written to use PCI memory space, however some x86 systems | 244 | /* This driver was written to use PCI memory space, however some x86 systems |
@@ -399,7 +396,7 @@ static int __devinit w840_probe1 (struct pci_dev *pdev, | |||
399 | #ifdef USE_IO_OPS | 396 | #ifdef USE_IO_OPS |
400 | bar = 0; | 397 | bar = 0; |
401 | #endif | 398 | #endif |
402 | ioaddr = pci_iomap(pdev, bar, pci_id_tbl[chip_idx].io_size); | 399 | ioaddr = pci_iomap(pdev, bar, netdev_res_size); |
403 | if (!ioaddr) | 400 | if (!ioaddr) |
404 | goto err_out_free_res; | 401 | goto err_out_free_res; |
405 | 402 | ||