]> git.pld-linux.org Git - packages/kernel.git/blob - atm-21-fore200e-0.2f.patch
- obsolete
[packages/kernel.git] / atm-21-fore200e-0.2f.patch
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.053166 seconds and 3 git commands to generate.