]> git.pld-linux.org Git - packages/kernel.git/commitdiff
- older but stable
authorJan Rękorajski <baggins@pld-linux.org>
Thu, 13 Mar 2003 13:33:38 +0000 (13:33 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    atm-21-fore200e-0.2f.patch -> 1.1

atm-21-fore200e-0.2f.patch [new file with mode: 0644]

diff --git a/atm-21-fore200e-0.2f.patch b/atm-21-fore200e-0.2f.patch
new file mode 100644 (file)
index 0000000..6afd23f
--- /dev/null
@@ -0,0 +1,333 @@
+--- ref-2.3.99-pre6-atm-0.77/drivers/atm/fore200e.c
++++ linux-2.3.99-pre6-atm-0.77-fore200e-0.2f/drivers/atm/fore200e.c    Sun May 21 15:21:38 2000
+@@ -65,7 +65,7 @@
+ #define FORE200E_52BYTE_AAL0_SDU
+ #endif
+-#define FORE200E_VERSION "0.2d"
++#define FORE200E_VERSION "0.2f"
+ #define FORE200E         "fore200e: "
+@@ -1215,8 +1215,8 @@
+           fore200e_push_rpd(fore200e, entry->rpd);
+       }
+       else {
+-          printk(FORE200E "damaged PDU on %d.%d.%d\n", 
+-                 fore200e->atm_dev->number, entry->rpd->atm_header.vpi, entry->rpd->atm_header.vci);
++          DPRINTK(1, "damaged PDU on %d.%d.%d\n", 
++                  fore200e->atm_dev->number, entry->rpd->atm_header.vpi, entry->rpd->atm_header.vci); 
+       }
+       fore200e_collect_rpd(fore200e, entry->rpd);
+@@ -1543,7 +1543,7 @@
+     
+   retry_here:
+     
+-    tasklet_disable(&fore200e->tasklet);
++    spin_lock_bh(&fore200e->tx_lock);
+     entry = &txq->host_entry[ txq->head ];
+     
+@@ -1553,8 +1553,8 @@
+       fore200e_irq_tx(fore200e);
+       
+       if (*entry->status != STATUS_FREE) {
+-          
+-          tasklet_enable(&fore200e->tasklet);
++
++          spin_unlock_bh(&fore200e->tx_lock);
+           /* retry once again? */
+           if(--retry > 0)
+@@ -1593,8 +1593,9 @@
+       
+       entry->data = kmalloc(tx_len, GFP_ATOMIC | GFP_DMA);
+       if (entry->data == NULL) {
+-          
+-          tasklet_enable(&fore200e->tasklet);
++
++          spin_unlock_bh(&fore200e->tx_lock);
++
+           if (vcc->pop)
+               vcc->pop(vcc, skb);
+           else
+@@ -1618,7 +1619,7 @@
+     FORE200E_NEXT_ENTRY(txq->head, QUEUE_SIZE_TX);
+     txq->txing++;
+-    tasklet_enable(&fore200e->tasklet);
++    spin_unlock_bh(&fore200e->tx_lock);
+     /* ensure DMA synchronisation */
+     fore200e->bus->dma_sync(fore200e, tpd->tsd[ 0 ].buffer, tpd->tsd[ 0 ].length, FORE200E_DMA_TODEVICE);
+@@ -2355,6 +2356,7 @@
+     DPRINTK(2, "device %s being initialized\n", fore200e->name);
++    spin_lock_init(&fore200e->tx_lock);
+     init_MUTEX(&fore200e->rate_sf);
+     
+     cpq = fore200e->cp_queues = (struct cp_queues*) (fore200e->virt_base + FORE200E_CP_QUEUES_OFFSET);
+--- ref-2.3.99-pre6-atm-0.77/drivers/atm/fore200e.h
++++ linux-2.3.99-pre6-atm-0.77-fore200e-0.2f/drivers/atm/fore200e.h    Mon May  8 13:34:33 2000
+@@ -879,6 +879,7 @@
+     struct stats*              stats;                  /* last snapshot of the stats         */
+     
+     struct semaphore           rate_sf;                /* protects rate reservation ops      */
++    spinlock_t                 tx_lock;                /* protects tx ops                    */
+     struct tasklet_struct      tasklet;                /* performs interrupt work            */
+ } fore200e_t;
+--- /dev/null  Thu Jan  1 01:00:00 1970
++++ linux-2.4.20/drivers/atm/fore200e.CHANGES  Mon Dec  4 14:34:31 2000
+@@ -0,0 +1,167 @@
++Version 0.2f (May, 21, 2000)
++----------------------------
++
++   this is just the 'official' release of the preceding version.
++   It also fixes a buglet spotted by Mitchell Blank Jr.
++
++   - the driver no longer mess with vcc->timestamp.
++
++
++Version 0.2e (May, 8, 2000)
++---------------------------
++
++   this is an experimental version, intended as a first attempt
++   to fix the lockup problems encountered by a few users
++   under heavy loads/SMP (probably introduced with the tasklet
++   code).
++
++   - use the spin_lock_bh() machinery to guard the
++     critical section of the tx code.
++   - minor fix to the Makefile test that tells the target
++     endianess from <asm/byteorder.h>.
++
++
++Version 0.2d (Mar, 28, 2000)
++----------------------------
++
++   - fix fatal bug in fore200e_open(): the ATM_VF_READY flag
++     should be set, not cleared!
++   - fix SBUS DMA direction flags.
++   - move interrupt handler work to tasklet.
++   - the compile no longer fails when the driver is compiled
++     without any hardware support (i.e. with both PCA and SBA
++     support disabled) (spotted by Arjan van de Ven). Also display
++     a message to warn the user.
++
++
++Version 0.2c (Mar, 23, 2000)
++----------------------------
++
++   this is a minor interim release. It does not provide significant
++   improvement to the driver code.
++
++   - initiate transition to the new-style PCI driver support.
++   - minor cosmetic changes.
++   - fix typos in Documentation/networking/fore200e.txt.
++
++
++Version 0.2b (Feb, 23, 2000)
++----------------------------
++
++   - update of PCI and SBUS DVMA code to 2.3.47-7 (DVMA functions
++     now have a 'direction' argument).
++
++
++Version 0.2a (Feb, 11, 2000)
++----------------------------
++
++   this release completes the transition of the driver to the new
++   DVMA interface. Many thanks to Marconi Networks (formerly FORE
++   Systems) for having placed their binary firmware images under GPL.
++
++   - switch to the new PCI interface (requires 2.3.42+).
++   - minor code cleanup.
++   - add FORE firmware copyright notice.
++
++
++Version 0.2 (Jan, 22, 2000)
++---------------------------
++
++   as the driver is now shipped with the regular linux-atm 
++   distributions, it is now released as a diff against the latest
++   linux-atm code.
++ 
++   - drop support of 2.2.x and pre-2.3.36 kernels.
++   - switch to the new SBUS interface.
++
++
++Version 0.1f (Jan, 22, 2000)
++----------------------------
++
++  this is an interim release that makes the driver ready for the
++  important 2.3.35+ transition. Significant parts of the driver 
++  have been rewritten to comply to the principles of the new SBUS
++  interface introduced by the latest 2.3 kernels.
++
++  - clean code.
++  - rewrite memory management routines.
++  - rewrite DMA/DVMA management routines.
++  - rewrite I/O management routines (and fix design weakness).
++  - fix a bug in the initialization of the buffer supply queue.
++  - cmd polling now gives up immediately if an error condition
++    is detected.
++
++  note that the driver remains useable with 2.2 and earlier 2.3 kernels,
++  but future releases will drop support of pre-2.3.36 kernels.
++
++
++Version 0.1e (Dec, 23, 1999)
++----------------------------
++
++  - support of S/UNI hardware loopback modes via SUNI_GETLOOP/SUNI_SETLOOP
++    ioctls.
++  - add the related ioctl entries in arch/sparc64/kernel/ioctl32.c.
++  - add a simple 'sunimode' utility to get/set the S/UNI loopback mode
++    (should also work with all the drivers that use suni.c/suni.h).
++  - fix handling of 52-byte AAL0 SDUs used by atmdump-like applications:
++    * if qos.txtp.max_sdu == 52, the following tx SDU format is expected
++      by the driver:
++      <4-byte cell header><48-byte AAL0 payload>[<48-byte AAL0 payload>...]
++      i.e.
++      <--- 52-byte AAL0 SDU used by atmdump --->[<- opt. extra payloads ->]
++      otherwise, the following tx SDU format is assumed:
++      <48-byte AAL0 payload>[<48-byte AAL0 payload>...]
++    * if qos.txtp.max_sdu == 52, the rx SDUs are delivered as follows:
++      <4-byte cell header><48-byte AAL0 payload>
++      i.e.
++      <- 52-byte AAL0 SDU expected by atmdump ->
++      otherwise, the SDUs are delivered as: <48-byte AAL0 payload>
++
++
++Version 0.1d (Dec, 16, 1999)
++----------------------------
++
++  - add a retry mechanism so that the driver does not immediately give up
++    if the tx queue is saturated. Saturation of the transmit queue may occur
++    under extreme conditions, when a fast host continuously submits very
++    small frames or raw AAL0 cells.
++  - add a new config option to tune the retry mecanism.
++  - improve AAL0 support. Attempting to transmit incomplete cell payloads
++    over an AAL0 VC simply used to nuke the PCA board.
++
++
++Version 0.1c (Nov, 22, 1999)
++----------------------------
++
++  - endian-dependent code no longer depends on arch-specific definitions
++    (e.g. __powerpc__ or __sparc_v9__) but on __BIG_ENDIAN/__LITTLE_ENDIAN
++  - the right PCA-200E firmware is no longer selected according to
++    a list of well-known archs in Config.in, but is guessed from
++    <asm/byteorder.h> in Makefile.
++  - rbd/rsd handles now use the FORE200E_BUF2HDL() and FORE200E_HDL2BUF()
++    macros.
++  - minor cosmetic changes.
++  - spend some time playing with AAL0. Seems to work with MTU = 48 bytes.
++
++
++Version 0.1b (Nov, 16, 1999)
++----------------------------
++
++  - improve the configuration process in order to avoid confusion
++    caused by the firmware stuff.
++  - update accordingly the build process and the help file.
++
++    (note that the driver code is unchanged)
++
++
++Version 0.1a (Nov, 2, 1999)
++---------------------------
++
++  - use new mutex initializer in 2.3.1+ kernels.
++  - add CHANGES file.
++
++
++Version 0.1 (Oct, 25, 1999)
++---------------------------
++
++  - first public release
+--- /dev/null  Thu Jan  1 01:00:00 1970
++++ linux-2.4.20/drivers/atm/fore200e.README   Mon Dec  4 14:34:31 2000
+@@ -0,0 +1,79 @@
++
++linux-2.4.0-test9-fore200e-0.3.tar
++----------------------------------
++
++This package updates the support of the FORE Systems 200E-series ATM
++adapters by the Linux operating system. Note that the driver itself is
++now distributed with the regular Linux kernel distribution.
++
++It is based on the earlier PCA-200E driver written by Uwe Dannowski.
++
++This device driver simultaneously supports PCA-200E and SBA-200E adapters on
++i386, alpha (untested), powerpc, sparc and sparc64 hosts.
++
++The intent is to enable the use of different models of FORE adapters at the
++same time, by servers that have several bus interfaces (such as PCI+SBUS,
++PCI+MCA or PCI+EISA).
++Only PCI and SBUS devices are currently supported by the driver, but support
++for other bus interfaces such as EISA should not be too hard to add (this may
++be more tricky for the MCA bus, though, as FORE made some MCA-specific
++modifications to the adapter's AALI interface).
++
++The driver is shipped with firmware data being uploaded to the ATM adapters
++at system boot time or at module loading time. The supplied firmware images
++should work with all adapters.
++
++However, if you encounter problems (the firmware doesn't start or the driver
++is unable to read the PROM data), you may consider trying another firmware
++version. Alternative binary firmware images can be found somewhere on the
++ForeThough CD-ROM supplied with your adapter by FORE Systems.
++
++You can also get the latest firmware images from FORE Systems at
++http://www.fore.com. Register TACTics Online and go to
++the 'software updates' pages. The firmware binaries are part of
++the various ForeThough software distributions.
++
++Notice that different versions of the PCA-200E firmware exist, depending
++on the endianess of the host architecture. The driver is shipped with
++both little and big endian PCA firmware images.
++
++Name and location of the alternative firmware images can be set at kernel
++configuration time. See the INSTALL file for details.
++
++Also note that the firmware binaries are the intellectual property
++of FORE Systems, Inc. Please read the fore200e_firmware_copyright file.
++
++
++
++Driver features summary
++-----------------------
++
++    - simultaneously supports PCA-200E and SBA-200E adapters;
++    - works on i386, powerpc, SBUS-based sparc and 
++      SBUS or PCI-based sparc64 architectures;
++    - now targeted to 2.4.0-test9 kernels;
++    - uses new DVMA PCI and SBUS interfaces;
++    - useable as a removable kernel module;
++    - supports FORE pseudo-CBR rate control;
++    - the reserved CBR rate can be changed after VC setup;
++    - supports AAL0, AAL3/4 and AAL5;
++    - supports S/UNI hardware loopback modes;
++    - internal design focuses on portability and extensibility.
++
++
++Restrictions / Known bugs
++-------------------------
++
++    - only VP=0 is supported;
++    - 'insmod' coredumps when attempting to load the driver on sparc64
++      hosts (at least using the old Ultrapenguin 1.1.9 distribution);
++    - some memory resources cannot be freed on sparc, sparc64 and powerpc,
++      because the required support is still missing in 2.2 and 2.3 kernels.
++      You shouldn't try to unload the module driver on these platforms.
++
++
++Feedback
++--------
++
++Feedback is welcome. Please send success stories/bug reports/
++patches/improvement/comments/flames to <lizzi@cnam.fr>.
This page took 0.116834 seconds and 4 git commands to generate.