]> git.pld-linux.org Git - packages/kernel.git/blame - atm-21-fore200e-0.2f.patch
- obsolete
[packages/kernel.git] / atm-21-fore200e-0.2f.patch
CommitLineData
81a97ec7
JR
1--- ref-2.3.99-pre6-atm-0.77/drivers/atm/fore200e.c
2+++ linux-2.3.99-pre6-atm-0.77-fore200e-0.2f/drivers/atm/fore200e.c Sun May 21 15:21:38 2000
3@@ -65,7 +65,7 @@
4 #define FORE200E_52BYTE_AAL0_SDU
5 #endif
6
7-#define FORE200E_VERSION "0.2d"
8+#define FORE200E_VERSION "0.2f"
9
10
11 #define FORE200E "fore200e: "
12@@ -1215,8 +1215,8 @@
13 fore200e_push_rpd(fore200e, entry->rpd);
14 }
15 else {
16- printk(FORE200E "damaged PDU on %d.%d.%d\n",
17- fore200e->atm_dev->number, entry->rpd->atm_header.vpi, entry->rpd->atm_header.vci);
18+ DPRINTK(1, "damaged PDU on %d.%d.%d\n",
19+ fore200e->atm_dev->number, entry->rpd->atm_header.vpi, entry->rpd->atm_header.vci);
20 }
21
22 fore200e_collect_rpd(fore200e, entry->rpd);
23@@ -1543,7 +1543,7 @@
24
25 retry_here:
26
27- tasklet_disable(&fore200e->tasklet);
28+ spin_lock_bh(&fore200e->tx_lock);
29
30 entry = &txq->host_entry[ txq->head ];
31
32@@ -1553,8 +1553,8 @@
33 fore200e_irq_tx(fore200e);
34
35 if (*entry->status != STATUS_FREE) {
36-
37- tasklet_enable(&fore200e->tasklet);
38+
39+ spin_unlock_bh(&fore200e->tx_lock);
40
41 /* retry once again? */
42 if(--retry > 0)
43@@ -1593,8 +1593,9 @@
44
45 entry->data = kmalloc(tx_len, GFP_ATOMIC | GFP_DMA);
46 if (entry->data == NULL) {
47-
48- tasklet_enable(&fore200e->tasklet);
49+
50+ spin_unlock_bh(&fore200e->tx_lock);
51+
52 if (vcc->pop)
53 vcc->pop(vcc, skb);
54 else
55@@ -1618,7 +1619,7 @@
56 FORE200E_NEXT_ENTRY(txq->head, QUEUE_SIZE_TX);
57 txq->txing++;
58
59- tasklet_enable(&fore200e->tasklet);
60+ spin_unlock_bh(&fore200e->tx_lock);
61
62 /* ensure DMA synchronisation */
63 fore200e->bus->dma_sync(fore200e, tpd->tsd[ 0 ].buffer, tpd->tsd[ 0 ].length, FORE200E_DMA_TODEVICE);
64@@ -2355,6 +2356,7 @@
65
66 DPRINTK(2, "device %s being initialized\n", fore200e->name);
67
68+ spin_lock_init(&fore200e->tx_lock);
69 init_MUTEX(&fore200e->rate_sf);
70
71 cpq = fore200e->cp_queues = (struct cp_queues*) (fore200e->virt_base + FORE200E_CP_QUEUES_OFFSET);
72--- ref-2.3.99-pre6-atm-0.77/drivers/atm/fore200e.h
73+++ linux-2.3.99-pre6-atm-0.77-fore200e-0.2f/drivers/atm/fore200e.h Mon May 8 13:34:33 2000
74@@ -879,6 +879,7 @@
75 struct stats* stats; /* last snapshot of the stats */
76
77 struct semaphore rate_sf; /* protects rate reservation ops */
78+ spinlock_t tx_lock; /* protects tx ops */
79 struct tasklet_struct tasklet; /* performs interrupt work */
80
81 } fore200e_t;
82--- /dev/null Thu Jan 1 01:00:00 1970
83+++ linux-2.4.20/drivers/atm/fore200e.CHANGES Mon Dec 4 14:34:31 2000
84@@ -0,0 +1,167 @@
85+Version 0.2f (May, 21, 2000)
86+----------------------------
87+
88+ this is just the 'official' release of the preceding version.
89+ It also fixes a buglet spotted by Mitchell Blank Jr.
90+
91+ - the driver no longer mess with vcc->timestamp.
92+
93+
94+Version 0.2e (May, 8, 2000)
95+---------------------------
96+
97+ this is an experimental version, intended as a first attempt
98+ to fix the lockup problems encountered by a few users
99+ under heavy loads/SMP (probably introduced with the tasklet
100+ code).
101+
102+ - use the spin_lock_bh() machinery to guard the
103+ critical section of the tx code.
104+ - minor fix to the Makefile test that tells the target
105+ endianess from <asm/byteorder.h>.
106+
107+
108+Version 0.2d (Mar, 28, 2000)
109+----------------------------
110+
111+ - fix fatal bug in fore200e_open(): the ATM_VF_READY flag
112+ should be set, not cleared!
113+ - fix SBUS DMA direction flags.
114+ - move interrupt handler work to tasklet.
115+ - the compile no longer fails when the driver is compiled
116+ without any hardware support (i.e. with both PCA and SBA
117+ support disabled) (spotted by Arjan van de Ven). Also display
118+ a message to warn the user.
119+
120+
121+Version 0.2c (Mar, 23, 2000)
122+----------------------------
123+
124+ this is a minor interim release. It does not provide significant
125+ improvement to the driver code.
126+
127+ - initiate transition to the new-style PCI driver support.
128+ - minor cosmetic changes.
129+ - fix typos in Documentation/networking/fore200e.txt.
130+
131+
132+Version 0.2b (Feb, 23, 2000)
133+----------------------------
134+
135+ - update of PCI and SBUS DVMA code to 2.3.47-7 (DVMA functions
136+ now have a 'direction' argument).
137+
138+
139+Version 0.2a (Feb, 11, 2000)
140+----------------------------
141+
142+ this release completes the transition of the driver to the new
143+ DVMA interface. Many thanks to Marconi Networks (formerly FORE
144+ Systems) for having placed their binary firmware images under GPL.
145+
146+ - switch to the new PCI interface (requires 2.3.42+).
147+ - minor code cleanup.
148+ - add FORE firmware copyright notice.
149+
150+
151+Version 0.2 (Jan, 22, 2000)
152+---------------------------
153+
154+ as the driver is now shipped with the regular linux-atm
155+ distributions, it is now released as a diff against the latest
156+ linux-atm code.
157+
158+ - drop support of 2.2.x and pre-2.3.36 kernels.
159+ - switch to the new SBUS interface.
160+
161+
162+Version 0.1f (Jan, 22, 2000)
163+----------------------------
164+
165+ this is an interim release that makes the driver ready for the
166+ important 2.3.35+ transition. Significant parts of the driver
167+ have been rewritten to comply to the principles of the new SBUS
168+ interface introduced by the latest 2.3 kernels.
169+
170+ - clean code.
171+ - rewrite memory management routines.
172+ - rewrite DMA/DVMA management routines.
173+ - rewrite I/O management routines (and fix design weakness).
174+ - fix a bug in the initialization of the buffer supply queue.
175+ - cmd polling now gives up immediately if an error condition
176+ is detected.
177+
178+ note that the driver remains useable with 2.2 and earlier 2.3 kernels,
179+ but future releases will drop support of pre-2.3.36 kernels.
180+
181+
182+Version 0.1e (Dec, 23, 1999)
183+----------------------------
184+
185+ - support of S/UNI hardware loopback modes via SUNI_GETLOOP/SUNI_SETLOOP
186+ ioctls.
187+ - add the related ioctl entries in arch/sparc64/kernel/ioctl32.c.
188+ - add a simple 'sunimode' utility to get/set the S/UNI loopback mode
189+ (should also work with all the drivers that use suni.c/suni.h).
190+ - fix handling of 52-byte AAL0 SDUs used by atmdump-like applications:
191+ * if qos.txtp.max_sdu == 52, the following tx SDU format is expected
192+ by the driver:
193+ <4-byte cell header><48-byte AAL0 payload>[<48-byte AAL0 payload>...]
194+ i.e.
195+ <--- 52-byte AAL0 SDU used by atmdump --->[<- opt. extra payloads ->]
196+ otherwise, the following tx SDU format is assumed:
197+ <48-byte AAL0 payload>[<48-byte AAL0 payload>...]
198+ * if qos.txtp.max_sdu == 52, the rx SDUs are delivered as follows:
199+ <4-byte cell header><48-byte AAL0 payload>
200+ i.e.
201+ <- 52-byte AAL0 SDU expected by atmdump ->
202+ otherwise, the SDUs are delivered as: <48-byte AAL0 payload>
203+
204+
205+Version 0.1d (Dec, 16, 1999)
206+----------------------------
207+
208+ - add a retry mechanism so that the driver does not immediately give up
209+ if the tx queue is saturated. Saturation of the transmit queue may occur
210+ under extreme conditions, when a fast host continuously submits very
211+ small frames or raw AAL0 cells.
212+ - add a new config option to tune the retry mecanism.
213+ - improve AAL0 support. Attempting to transmit incomplete cell payloads
214+ over an AAL0 VC simply used to nuke the PCA board.
215+
216+
217+Version 0.1c (Nov, 22, 1999)
218+----------------------------
219+
220+ - endian-dependent code no longer depends on arch-specific definitions
221+ (e.g. __powerpc__ or __sparc_v9__) but on __BIG_ENDIAN/__LITTLE_ENDIAN
222+ - the right PCA-200E firmware is no longer selected according to
223+ a list of well-known archs in Config.in, but is guessed from
224+ <asm/byteorder.h> in Makefile.
225+ - rbd/rsd handles now use the FORE200E_BUF2HDL() and FORE200E_HDL2BUF()
226+ macros.
227+ - minor cosmetic changes.
228+ - spend some time playing with AAL0. Seems to work with MTU = 48 bytes.
229+
230+
231+Version 0.1b (Nov, 16, 1999)
232+----------------------------
233+
234+ - improve the configuration process in order to avoid confusion
235+ caused by the firmware stuff.
236+ - update accordingly the build process and the help file.
237+
238+ (note that the driver code is unchanged)
239+
240+
241+Version 0.1a (Nov, 2, 1999)
242+---------------------------
243+
244+ - use new mutex initializer in 2.3.1+ kernels.
245+ - add CHANGES file.
246+
247+
248+Version 0.1 (Oct, 25, 1999)
249+---------------------------
250+
251+ - first public release
252--- /dev/null Thu Jan 1 01:00:00 1970
253+++ linux-2.4.20/drivers/atm/fore200e.README Mon Dec 4 14:34:31 2000
254@@ -0,0 +1,79 @@
255+
256+linux-2.4.0-test9-fore200e-0.3.tar
257+----------------------------------
258+
259+This package updates the support of the FORE Systems 200E-series ATM
260+adapters by the Linux operating system. Note that the driver itself is
261+now distributed with the regular Linux kernel distribution.
262+
263+It is based on the earlier PCA-200E driver written by Uwe Dannowski.
264+
265+This device driver simultaneously supports PCA-200E and SBA-200E adapters on
266+i386, alpha (untested), powerpc, sparc and sparc64 hosts.
267+
268+The intent is to enable the use of different models of FORE adapters at the
269+same time, by servers that have several bus interfaces (such as PCI+SBUS,
270+PCI+MCA or PCI+EISA).
271+Only PCI and SBUS devices are currently supported by the driver, but support
272+for other bus interfaces such as EISA should not be too hard to add (this may
273+be more tricky for the MCA bus, though, as FORE made some MCA-specific
274+modifications to the adapter's AALI interface).
275+
276+The driver is shipped with firmware data being uploaded to the ATM adapters
277+at system boot time or at module loading time. The supplied firmware images
278+should work with all adapters.
279+
280+However, if you encounter problems (the firmware doesn't start or the driver
281+is unable to read the PROM data), you may consider trying another firmware
282+version. Alternative binary firmware images can be found somewhere on the
283+ForeThough CD-ROM supplied with your adapter by FORE Systems.
284+
285+You can also get the latest firmware images from FORE Systems at
286+http://www.fore.com. Register TACTics Online and go to
287+the 'software updates' pages. The firmware binaries are part of
288+the various ForeThough software distributions.
289+
290+Notice that different versions of the PCA-200E firmware exist, depending
291+on the endianess of the host architecture. The driver is shipped with
292+both little and big endian PCA firmware images.
293+
294+Name and location of the alternative firmware images can be set at kernel
295+configuration time. See the INSTALL file for details.
296+
297+Also note that the firmware binaries are the intellectual property
298+of FORE Systems, Inc. Please read the fore200e_firmware_copyright file.
299+
300+
301+
302+Driver features summary
303+-----------------------
304+
305+ - simultaneously supports PCA-200E and SBA-200E adapters;
306+ - works on i386, powerpc, SBUS-based sparc and
307+ SBUS or PCI-based sparc64 architectures;
308+ - now targeted to 2.4.0-test9 kernels;
309+ - uses new DVMA PCI and SBUS interfaces;
310+ - useable as a removable kernel module;
311+ - supports FORE pseudo-CBR rate control;
312+ - the reserved CBR rate can be changed after VC setup;
313+ - supports AAL0, AAL3/4 and AAL5;
314+ - supports S/UNI hardware loopback modes;
315+ - internal design focuses on portability and extensibility.
316+
317+
318+Restrictions / Known bugs
319+-------------------------
320+
321+ - only VP=0 is supported;
322+ - 'insmod' coredumps when attempting to load the driver on sparc64
323+ hosts (at least using the old Ultrapenguin 1.1.9 distribution);
324+ - some memory resources cannot be freed on sparc, sparc64 and powerpc,
325+ because the required support is still missing in 2.2 and 2.3 kernels.
326+ You shouldn't try to unload the module driver on these platforms.
327+
328+
329+Feedback
330+--------
331+
332+Feedback is welcome. Please send success stories/bug reports/
333+patches/improvement/comments/flames to <lizzi@cnam.fr>.
This page took 0.127319 seconds and 4 git commands to generate.