diff options
author | Jeff Garzik <jeff@garzik.org> | 2006-03-21 16:22:47 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-03-21 16:22:47 -0500 |
commit | 0b5bf225c06e62eb6066fc5b7ccf4f296356c503 (patch) | |
tree | 931d1f5033618a203d0db18cef8eae290a442e3a /drivers/net/pcnet32.c | |
parent | 4a5e8e296cfdeef18312c08199f25c00ec148f41 (diff) |
[netdrvr] pcnet32: other source formatting cleanups
- undo some Lindent damage by indenting member names
- remove history at top of .c file, this is stored in the kernel
repo changelog (in greater detail, even).
Diffstat (limited to 'drivers/net/pcnet32.c')
-rw-r--r-- | drivers/net/pcnet32.c | 228 |
1 files changed, 54 insertions, 174 deletions
diff --git a/drivers/net/pcnet32.c b/drivers/net/pcnet32.c index 861361018640..9595f74da93f 100644 --- a/drivers/net/pcnet32.c +++ b/drivers/net/pcnet32.c | |||
@@ -156,126 +156,6 @@ static int homepna[MAX_UNITS]; | |||
156 | */ | 156 | */ |
157 | 157 | ||
158 | /* | 158 | /* |
159 | * History: | ||
160 | * v0.01: Initial version | ||
161 | * only tested on Alpha Noname Board | ||
162 | * v0.02: changed IRQ handling for new interrupt scheme (dev_id) | ||
163 | * tested on a ASUS SP3G | ||
164 | * v0.10: fixed an odd problem with the 79C974 in a Compaq Deskpro XL | ||
165 | * looks like the 974 doesn't like stopping and restarting in a | ||
166 | * short period of time; now we do a reinit of the lance; the | ||
167 | * bug was triggered by doing ifconfig eth0 <ip> broadcast <addr> | ||
168 | * and hangs the machine (thanks to Klaus Liedl for debugging) | ||
169 | * v0.12: by suggestion from Donald Becker: Renamed driver to pcnet32, | ||
170 | * made it standalone (no need for lance.c) | ||
171 | * v0.13: added additional PCI detecting for special PCI devices (Compaq) | ||
172 | * v0.14: stripped down additional PCI probe (thanks to David C Niemi | ||
173 | * and sveneric@xs4all.nl for testing this on their Compaq boxes) | ||
174 | * v0.15: added 79C965 (VLB) probe | ||
175 | * added interrupt sharing for PCI chips | ||
176 | * v0.16: fixed set_multicast_list on Alpha machines | ||
177 | * v0.17: removed hack from dev.c; now pcnet32 uses ethif_probe in Space.c | ||
178 | * v0.19: changed setting of autoselect bit | ||
179 | * v0.20: removed additional Compaq PCI probe; there is now a working one | ||
180 | * in arch/i386/bios32.c | ||
181 | * v0.21: added endian conversion for ppc, from work by cort@cs.nmt.edu | ||
182 | * v0.22: added printing of status to ring dump | ||
183 | * v0.23: changed enet_statistics to net_devive_stats | ||
184 | * v0.90: added multicast filter | ||
185 | * added module support | ||
186 | * changed irq probe to new style | ||
187 | * added PCnetFast chip id | ||
188 | * added fix for receive stalls with Intel saturn chipsets | ||
189 | * added in-place rx skbs like in the tulip driver | ||
190 | * minor cleanups | ||
191 | * v0.91: added PCnetFast+ chip id | ||
192 | * back port to 2.0.x | ||
193 | * v1.00: added some stuff from Donald Becker's 2.0.34 version | ||
194 | * added support for byte counters in net_dev_stats | ||
195 | * v1.01: do ring dumps, only when debugging the driver | ||
196 | * increased the transmit timeout | ||
197 | * v1.02: fixed memory leak in pcnet32_init_ring() | ||
198 | * v1.10: workaround for stopped transmitter | ||
199 | * added port selection for modules | ||
200 | * detect special T1/E1 WAN card and setup port selection | ||
201 | * v1.11: fixed wrong checking of Tx errors | ||
202 | * v1.20: added check of return value kmalloc (cpeterso@cs.washington.edu) | ||
203 | * added save original kmalloc addr for freeing (mcr@solidum.com) | ||
204 | * added support for PCnetHome chip (joe@MIT.EDU) | ||
205 | * rewritten PCI card detection | ||
206 | * added dwio mode to get driver working on some PPC machines | ||
207 | * v1.21: added mii selection and mii ioctl | ||
208 | * v1.22: changed pci scanning code to make PPC people happy | ||
209 | * fixed switching to 32bit mode in pcnet32_open() (thanks | ||
210 | * to Michael Richard <mcr@solidum.com> for noticing this one) | ||
211 | * added sub vendor/device id matching (thanks again to | ||
212 | * Michael Richard <mcr@solidum.com>) | ||
213 | * added chip id for 79c973/975 (thanks to Zach Brown <zab@zabbo.net>) | ||
214 | * v1.23 fixed small bug, when manual selecting MII speed/duplex | ||
215 | * v1.24 Applied Thomas' patch to use TxStartPoint and thus decrease TxFIFO | ||
216 | * underflows. Added tx_start_pt module parameter. Increased | ||
217 | * TX_RING_SIZE from 16 to 32. Added #ifdef'd code to use DXSUFLO | ||
218 | * for FAST[+] chipsets. <kaf@fc.hp.com> | ||
219 | * v1.24ac Added SMP spinlocking - Alan Cox <alan@redhat.com> | ||
220 | * v1.25kf Added No Interrupt on successful Tx for some Tx's <kaf@fc.hp.com> | ||
221 | * v1.26 Converted to pci_alloc_consistent, Jamey Hicks / George France | ||
222 | * <jamey@crl.dec.com> | ||
223 | * - Fixed a few bugs, related to running the controller in 32bit mode. | ||
224 | * 23 Oct, 2000. Carsten Langgaard, carstenl@mips.com | ||
225 | * Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved. | ||
226 | * v1.26p Fix oops on rmmod+insmod; plug i/o resource leak - Paul Gortmaker | ||
227 | * v1.27 improved CSR/PROM address detection, lots of cleanups, | ||
228 | * new pcnet32vlb module option, HP-PARISC support, | ||
229 | * added module parameter descriptions, | ||
230 | * initial ethtool support - Helge Deller <deller@gmx.de> | ||
231 | * v1.27a Sun Feb 10 2002 Go Taniguchi <go@turbolinux.co.jp> | ||
232 | * use alloc_etherdev and register_netdev | ||
233 | * fix pci probe not increment cards_found | ||
234 | * FD auto negotiate error workaround for xSeries250 | ||
235 | * clean up and using new mii module | ||
236 | * v1.27b Sep 30 2002 Kent Yoder <yoder1@us.ibm.com> | ||
237 | * Added timer for cable connection state changes. | ||
238 | * v1.28 20 Feb 2004 Don Fry <brazilnut@us.ibm.com> | ||
239 | * Jon Mason <jonmason@us.ibm.com>, Chinmay Albal <albal@in.ibm.com> | ||
240 | * Now uses ethtool_ops, netif_msg_* and generic_mii_ioctl. | ||
241 | * Fixes bogus 'Bus master arbitration failure', pci_[un]map_single | ||
242 | * length errors, and transmit hangs. Cleans up after errors in open. | ||
243 | * Jim Lewis <jklewis@us.ibm.com> added ethernet loopback test. | ||
244 | * Thomas Munck Steenholdt <tmus@tmus.dk> non-mii ioctl corrections. | ||
245 | * v1.29 6 Apr 2004 Jim Lewis <jklewis@us.ibm.com> added physical | ||
246 | * identification code (blink led's) and register dump. | ||
247 | * Don Fry added timer for 971/972 so skbufs don't remain on tx ring | ||
248 | * forever. | ||
249 | * v1.30 18 May 2004 Don Fry removed timer and Last Transmit Interrupt | ||
250 | * (ltint) as they added complexity and didn't give good throughput. | ||
251 | * v1.30a 22 May 2004 Don Fry limit frames received during interrupt. | ||
252 | * v1.30b 24 May 2004 Don Fry fix bogus tx carrier errors with 79c973, | ||
253 | * assisted by Bruce Penrod <bmpenrod@endruntechnologies.com>. | ||
254 | * v1.30c 25 May 2004 Don Fry added netif_wake_queue after pcnet32_restart. | ||
255 | * v1.30d 01 Jun 2004 Don Fry discard oversize rx packets. | ||
256 | * v1.30e 11 Jun 2004 Don Fry recover after fifo error and rx hang. | ||
257 | * v1.30f 16 Jun 2004 Don Fry cleanup IRQ to allow 0 and 1 for PCI, | ||
258 | * expanding on suggestions from Ralf Baechle <ralf@linux-mips.org>, | ||
259 | * and Brian Murphy <brian@murphy.dk>. | ||
260 | * v1.30g 22 Jun 2004 Patrick Simmons <psimmons@flash.net> added option | ||
261 | * homepna for selecting HomePNA mode for PCNet/Home 79C978. | ||
262 | * v1.30h 24 Jun 2004 Don Fry correctly select auto, speed, duplex in bcr32. | ||
263 | * v1.30i 28 Jun 2004 Don Fry change to use module_param. | ||
264 | * v1.30j 29 Apr 2005 Don Fry fix skb/map leak with loopback test. | ||
265 | * v1.31 02 Sep 2005 Hubert WS Lin <wslin@tw.ibm.c0m> added set_ringparam(). | ||
266 | * v1.31a 12 Sep 2005 Hubert WS Lin <wslin@tw.ibm.c0m> set min ring size to 4 | ||
267 | * to allow loopback test to work unchanged. | ||
268 | * v1.31b 06 Oct 2005 Don Fry changed alloc_ring to show name of device | ||
269 | * if allocation fails | ||
270 | * v1.31c 01 Nov 2005 Don Fry Allied Telesyn 2700/2701 FX are 100Mbit only. | ||
271 | * Force 100Mbit FD if Auto (ASEL) is selected. | ||
272 | * See Bugzilla 2669 and 4551. | ||
273 | * v1.32 18 Mar2006 Thomas Bogendoerfer and Don Fry added Multi-Phy | ||
274 | * handling for supporting AT-270x FTX cards with FX and Tx PHYs. | ||
275 | * Philippe Seewer assisted with auto negotiation and testing. | ||
276 | */ | ||
277 | |||
278 | /* | ||
279 | * Set the number of Tx and Rx buffers, using Log_2(# buffers). | 159 | * Set the number of Tx and Rx buffers, using Log_2(# buffers). |
280 | * Reasonable default values are 4 Tx buffers, and 16 Rx buffers. | 160 | * Reasonable default values are 4 Tx buffers, and 16 Rx buffers. |
281 | * That translates to 2 (4 == 2^^2) and 4 (16 == 2^^4). | 161 | * That translates to 2 (4 == 2^^2) and 4 (16 == 2^^4). |
@@ -310,31 +190,31 @@ static int homepna[MAX_UNITS]; | |||
310 | 190 | ||
311 | /* The PCNET32 Rx and Tx ring descriptors. */ | 191 | /* The PCNET32 Rx and Tx ring descriptors. */ |
312 | struct pcnet32_rx_head { | 192 | struct pcnet32_rx_head { |
313 | u32 base; | 193 | u32 base; |
314 | s16 buf_length; | 194 | s16 buf_length; |
315 | s16 status; | 195 | s16 status; |
316 | u32 msg_length; | 196 | u32 msg_length; |
317 | u32 reserved; | 197 | u32 reserved; |
318 | }; | 198 | }; |
319 | 199 | ||
320 | struct pcnet32_tx_head { | 200 | struct pcnet32_tx_head { |
321 | u32 base; | 201 | u32 base; |
322 | s16 length; | 202 | s16 length; |
323 | s16 status; | 203 | s16 status; |
324 | u32 misc; | 204 | u32 misc; |
325 | u32 reserved; | 205 | u32 reserved; |
326 | }; | 206 | }; |
327 | 207 | ||
328 | /* The PCNET32 32-Bit initialization block, described in databook. */ | 208 | /* The PCNET32 32-Bit initialization block, described in databook. */ |
329 | struct pcnet32_init_block { | 209 | struct pcnet32_init_block { |
330 | u16 mode; | 210 | u16 mode; |
331 | u16 tlen_rlen; | 211 | u16 tlen_rlen; |
332 | u8 phys_addr[6]; | 212 | u8 phys_addr[6]; |
333 | u16 reserved; | 213 | u16 reserved; |
334 | u32 filter[2]; | 214 | u32 filter[2]; |
335 | /* Receive and transmit ring base, along with extra bits. */ | 215 | /* Receive and transmit ring base, along with extra bits. */ |
336 | u32 rx_ring; | 216 | u32 rx_ring; |
337 | u32 tx_ring; | 217 | u32 tx_ring; |
338 | }; | 218 | }; |
339 | 219 | ||
340 | /* PCnet32 access functions */ | 220 | /* PCnet32 access functions */ |
@@ -355,46 +235,46 @@ struct pcnet32_access { | |||
355 | struct pcnet32_private { | 235 | struct pcnet32_private { |
356 | struct pcnet32_init_block init_block; | 236 | struct pcnet32_init_block init_block; |
357 | /* The Tx and Rx ring entries must be aligned on 16-byte boundaries in 32bit mode. */ | 237 | /* The Tx and Rx ring entries must be aligned on 16-byte boundaries in 32bit mode. */ |
358 | struct pcnet32_rx_head *rx_ring; | 238 | struct pcnet32_rx_head *rx_ring; |
359 | struct pcnet32_tx_head *tx_ring; | 239 | struct pcnet32_tx_head *tx_ring; |
360 | dma_addr_t dma_addr; /* DMA address of beginning of this | 240 | dma_addr_t dma_addr;/* DMA address of beginning of this |
361 | object, returned by | 241 | object, returned by pci_alloc_consistent */ |
362 | pci_alloc_consistent */ | 242 | struct pci_dev *pci_dev; |
363 | struct pci_dev *pci_dev; /* Pointer to the associated pci device | 243 | const char *name; |
364 | structure */ | ||
365 | const char *name; | ||
366 | /* The saved address of a sent-in-place packet/buffer, for skfree(). */ | 244 | /* The saved address of a sent-in-place packet/buffer, for skfree(). */ |
367 | struct sk_buff **tx_skbuff; | 245 | struct sk_buff **tx_skbuff; |
368 | struct sk_buff **rx_skbuff; | 246 | struct sk_buff **rx_skbuff; |
369 | dma_addr_t *tx_dma_addr; | 247 | dma_addr_t *tx_dma_addr; |
370 | dma_addr_t *rx_dma_addr; | 248 | dma_addr_t *rx_dma_addr; |
371 | struct pcnet32_access a; | 249 | struct pcnet32_access a; |
372 | spinlock_t lock; /* Guard lock */ | 250 | spinlock_t lock; /* Guard lock */ |
373 | unsigned int cur_rx, cur_tx; /* The next free ring entry */ | 251 | unsigned int cur_rx, cur_tx; /* The next free ring entry */ |
374 | unsigned int rx_ring_size; /* current rx ring size */ | 252 | unsigned int rx_ring_size; /* current rx ring size */ |
375 | unsigned int tx_ring_size; /* current tx ring size */ | 253 | unsigned int tx_ring_size; /* current tx ring size */ |
376 | unsigned int rx_mod_mask; /* rx ring modular mask */ | 254 | unsigned int rx_mod_mask; /* rx ring modular mask */ |
377 | unsigned int tx_mod_mask; /* tx ring modular mask */ | 255 | unsigned int tx_mod_mask; /* tx ring modular mask */ |
378 | unsigned short rx_len_bits; | 256 | unsigned short rx_len_bits; |
379 | unsigned short tx_len_bits; | 257 | unsigned short tx_len_bits; |
380 | dma_addr_t rx_ring_dma_addr; | 258 | dma_addr_t rx_ring_dma_addr; |
381 | dma_addr_t tx_ring_dma_addr; | 259 | dma_addr_t tx_ring_dma_addr; |
382 | unsigned int dirty_rx, dirty_tx; /* The ring entries to be free()ed. */ | 260 | unsigned int dirty_rx, /* ring entries to be freed. */ |
383 | struct net_device_stats stats; | 261 | dirty_tx; |
384 | char tx_full; | 262 | |
385 | char phycount; /* number of phys found */ | 263 | struct net_device_stats stats; |
386 | int options; | 264 | char tx_full; |
387 | unsigned int shared_irq:1, /* shared irq possible */ | 265 | char phycount; /* number of phys found */ |
388 | dxsuflo:1, /* disable transmit stop on uflo */ | 266 | int options; |
389 | mii:1; /* mii port available */ | 267 | unsigned int shared_irq:1, /* shared irq possible */ |
390 | struct net_device *next; | 268 | dxsuflo:1, /* disable transmit stop on uflo */ |
391 | struct mii_if_info mii_if; | 269 | mii:1; /* mii port available */ |
392 | struct timer_list watchdog_timer; | 270 | struct net_device *next; |
393 | struct timer_list blink_timer; | 271 | struct mii_if_info mii_if; |
394 | u32 msg_enable; /* debug message level */ | 272 | struct timer_list watchdog_timer; |
273 | struct timer_list blink_timer; | ||
274 | u32 msg_enable; /* debug message level */ | ||
395 | 275 | ||
396 | /* each bit indicates an available PHY */ | 276 | /* each bit indicates an available PHY */ |
397 | u32 phymask; | 277 | u32 phymask; |
398 | }; | 278 | }; |
399 | 279 | ||
400 | static void pcnet32_probe_vlbus(void); | 280 | static void pcnet32_probe_vlbus(void); |