diff options
Diffstat (limited to 'drivers/net/sundance.c')
-rw-r--r-- | drivers/net/sundance.c | 108 |
1 files changed, 15 insertions, 93 deletions
diff --git a/drivers/net/sundance.c b/drivers/net/sundance.c index 643fceae3db5..698568e751da 100644 --- a/drivers/net/sundance.c +++ b/drivers/net/sundance.c | |||
@@ -16,91 +16,13 @@ | |||
16 | 16 | ||
17 | Support and updates available at | 17 | Support and updates available at |
18 | http://www.scyld.com/network/sundance.html | 18 | http://www.scyld.com/network/sundance.html |
19 | [link no longer provides useful info -jgarzik] | ||
19 | 20 | ||
20 | |||
21 | Version LK1.01a (jgarzik): | ||
22 | - Replace some MII-related magic numbers with constants | ||
23 | |||
24 | Version LK1.02 (D-Link): | ||
25 | - Add new board to PCI ID list | ||
26 | - Fix multicast bug | ||
27 | |||
28 | Version LK1.03 (D-Link): | ||
29 | - New Rx scheme, reduce Rx congestion | ||
30 | - Option to disable flow control | ||
31 | |||
32 | Version LK1.04 (D-Link): | ||
33 | - Tx timeout recovery | ||
34 | - More support for ethtool. | ||
35 | |||
36 | Version LK1.04a: | ||
37 | - Remove unused/constant members from struct pci_id_info | ||
38 | (which then allows removal of 'drv_flags' from private struct) | ||
39 | (jgarzik) | ||
40 | - If no phy is found, fail to load that board (jgarzik) | ||
41 | - Always start phy id scan at id 1 to avoid problems (Donald Becker) | ||
42 | - Autodetect where mii_preable_required is needed, | ||
43 | default to not needed. (Donald Becker) | ||
44 | |||
45 | Version LK1.04b: | ||
46 | - Remove mii_preamble_required module parameter (Donald Becker) | ||
47 | - Add per-interface mii_preamble_required (setting is autodetected) | ||
48 | (Donald Becker) | ||
49 | - Remove unnecessary cast from void pointer (jgarzik) | ||
50 | - Re-align comments in private struct (jgarzik) | ||
51 | |||
52 | Version LK1.04c (jgarzik): | ||
53 | - Support bitmapped message levels (NETIF_MSG_xxx), and the | ||
54 | two ethtool ioctls that get/set them | ||
55 | - Don't hand-code MII ethtool support, use standard API/lib | ||
56 | |||
57 | Version LK1.04d: | ||
58 | - Merge from Donald Becker's sundance.c: (Jason Lunz) | ||
59 | * proper support for variably-sized MTUs | ||
60 | * default to PIO, to fix chip bugs | ||
61 | - Add missing unregister_netdev (Jason Lunz) | ||
62 | - Add CONFIG_SUNDANCE_MMIO config option (jgarzik) | ||
63 | - Better rx buf size calculation (Donald Becker) | ||
64 | |||
65 | Version LK1.05 (D-Link): | ||
66 | - Fix DFE-580TX packet drop issue (for DL10050C) | ||
67 | - Fix reset_tx logic | ||
68 | |||
69 | Version LK1.06 (D-Link): | ||
70 | - Fix crash while unloading driver | ||
71 | |||
72 | Versin LK1.06b (D-Link): | ||
73 | - New tx scheme, adaptive tx_coalesce | ||
74 | |||
75 | Version LK1.07 (D-Link): | ||
76 | - Fix tx bugs in big-endian machines | ||
77 | - Remove unused max_interrupt_work module parameter, the new | ||
78 | NAPI-like rx scheme doesn't need it. | ||
79 | - Remove redundancy get_stats() in intr_handler(), those | ||
80 | I/O access could affect performance in ARM-based system | ||
81 | - Add Linux software VLAN support | ||
82 | |||
83 | Version LK1.08 (Philippe De Muyter phdm@macqel.be): | ||
84 | - Fix bug of custom mac address | ||
85 | (StationAddr register only accept word write) | ||
86 | |||
87 | Version LK1.09 (D-Link): | ||
88 | - Fix the flowctrl bug. | ||
89 | - Set Pause bit in MII ANAR if flow control enabled. | ||
90 | |||
91 | Version LK1.09a (ICPlus): | ||
92 | - Add the delay time in reading the contents of EEPROM | ||
93 | |||
94 | Version LK1.10 (Philippe De Muyter phdm@macqel.be): | ||
95 | - Make 'unblock interface after Tx underrun' work | ||
96 | |||
97 | Version LK1.11 (Pedro Alejandro Lopez-Valencia palopezv at gmail.com): | ||
98 | - Add support for IC Plus Corporation IP100A chipset | ||
99 | */ | 21 | */ |
100 | 22 | ||
101 | #define DRV_NAME "sundance" | 23 | #define DRV_NAME "sundance" |
102 | #define DRV_VERSION "1.01+LK1.11" | 24 | #define DRV_VERSION "1.1" |
103 | #define DRV_RELDATE "14-Jun-2006" | 25 | #define DRV_RELDATE "27-Jun-2006" |
104 | 26 | ||
105 | 27 | ||
106 | /* The user-configurable values. | 28 | /* The user-configurable values. |
@@ -185,7 +107,7 @@ static char *media[MAX_UNITS]; | |||
185 | #endif | 107 | #endif |
186 | 108 | ||
187 | /* These identify the driver base version and may not be removed. */ | 109 | /* These identify the driver base version and may not be removed. */ |
188 | static char version[] __devinitdata = | 110 | static char version[] = |
189 | KERN_INFO DRV_NAME ".c:v" DRV_VERSION " " DRV_RELDATE " Written by Donald Becker\n" | 111 | KERN_INFO DRV_NAME ".c:v" DRV_VERSION " " DRV_RELDATE " Written by Donald Becker\n" |
190 | KERN_INFO " http://www.scyld.com/network/sundance.html\n"; | 112 | KERN_INFO " http://www.scyld.com/network/sundance.html\n"; |
191 | 113 | ||
@@ -282,15 +204,15 @@ IVc. Errata | |||
282 | #define USE_IO_OPS 1 | 204 | #define USE_IO_OPS 1 |
283 | #endif | 205 | #endif |
284 | 206 | ||
285 | static struct pci_device_id sundance_pci_tbl[] = { | 207 | static const struct pci_device_id sundance_pci_tbl[] = { |
286 | {0x1186, 0x1002, 0x1186, 0x1002, 0, 0, 0}, | 208 | { 0x1186, 0x1002, 0x1186, 0x1002, 0, 0, 0 }, |
287 | {0x1186, 0x1002, 0x1186, 0x1003, 0, 0, 1}, | 209 | { 0x1186, 0x1002, 0x1186, 0x1003, 0, 0, 1 }, |
288 | {0x1186, 0x1002, 0x1186, 0x1012, 0, 0, 2}, | 210 | { 0x1186, 0x1002, 0x1186, 0x1012, 0, 0, 2 }, |
289 | {0x1186, 0x1002, 0x1186, 0x1040, 0, 0, 3}, | 211 | { 0x1186, 0x1002, 0x1186, 0x1040, 0, 0, 3 }, |
290 | {0x1186, 0x1002, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4}, | 212 | { 0x1186, 0x1002, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4 }, |
291 | {0x13F0, 0x0201, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 5}, | 213 | { 0x13F0, 0x0201, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 5 }, |
292 | {0x13F0, 0x0200, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 6}, | 214 | { 0x13F0, 0x0200, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 6 }, |
293 | {0,} | 215 | { } |
294 | }; | 216 | }; |
295 | MODULE_DEVICE_TABLE(pci, sundance_pci_tbl); | 217 | MODULE_DEVICE_TABLE(pci, sundance_pci_tbl); |
296 | 218 | ||
@@ -301,7 +223,7 @@ enum { | |||
301 | struct pci_id_info { | 223 | struct pci_id_info { |
302 | const char *name; | 224 | const char *name; |
303 | }; | 225 | }; |
304 | static const struct pci_id_info pci_id_tbl[] = { | 226 | static const struct pci_id_info pci_id_tbl[] __devinitdata = { |
305 | {"D-Link DFE-550TX FAST Ethernet Adapter"}, | 227 | {"D-Link DFE-550TX FAST Ethernet Adapter"}, |
306 | {"D-Link DFE-550FX 100Mbps Fiber-optics Adapter"}, | 228 | {"D-Link DFE-550FX 100Mbps Fiber-optics Adapter"}, |
307 | {"D-Link DFE-580TX 4 port Server Adapter"}, | 229 | {"D-Link DFE-580TX 4 port Server Adapter"}, |
@@ -309,7 +231,7 @@ static const struct pci_id_info pci_id_tbl[] = { | |||
309 | {"D-Link DL10050-based FAST Ethernet Adapter"}, | 231 | {"D-Link DL10050-based FAST Ethernet Adapter"}, |
310 | {"Sundance Technology Alta"}, | 232 | {"Sundance Technology Alta"}, |
311 | {"IC Plus Corporation IP100A FAST Ethernet Adapter"}, | 233 | {"IC Plus Corporation IP100A FAST Ethernet Adapter"}, |
312 | {NULL,}, /* 0 terminated list. */ | 234 | { } /* terminate list. */ |
313 | }; | 235 | }; |
314 | 236 | ||
315 | /* This driver was written to use PCI memory space, however x86-oriented | 237 | /* This driver was written to use PCI memory space, however x86-oriented |