Sat Dec 30 21:30 2000 Gerard Roudier 
	* version sym-2.1.0-20001230
	- Initial release of SYM-2.

Mon Jan 08 21:30 2001 Gerard Roudier 
	* version sym-2.1.1-20010108
	- Change a couple of defines containing ncr or NCR by their 
	  equivalent containing sym or SYM instead.

Sun Jan 14 22:30 2001 Gerard Roudier 
	* version sym-2.1.2-20010114
	- Fix a couple of printfs:
	  * Add the target number to the display of transfer parameters.
	  * Make the display of TCQ and queue depth clearer.

Wed Jan 17 23:30 2001 Gerard Roudier 
	* version sym-2.1.3-20010117
	- Wrong residual values were returned in some situations.
	  This broke cdrecord with linux-2.4.0, for example.

Sat Jan 20 18:00 2001 Gerard Roudier 
	* version sym-2.1.4-20010120
	- Add year 2001 to Copyright.
	- A tiny bug in the dma memory freeing path has been fixed.
	  (Driver unload failed with a bad address reference).

Wed Jan 24 21:00 2001 Gerard Roudier 
	* version sym-2.1.5-20010124
	- Make the driver work under Linux-2.4.x when statically linked 
	  with the kernel.
	- Check against memory allocation failure for SCRIPTZ and add the 
	  missing free of this memory on instance detach.
	- Check against GPIO3 pulled low for HVD controllers (driver did 
	  just the opposite).
	  Misdetection of BUS mode was triggered on module reload only, 
	  since BIOS settings were trusted instead on first load.

Wed Feb 7 21:00 2001 Gerard Roudier 
	* version sym-2.1.6-20010207
	- Call pci_enable_device() as wished by kernel maintainers.
	- Change the sym_queue_scsiio() interface.
	  This is intended to simplify portability.
	- Move the code intended to deal with the dowloading of SCRIPTS 
	  from SCRIPTS :) in the patch method (was wrongly placed in 
	  the SCRIPTS setup method).
	- Add a missing cpu_to_scr()  (np->abort_tbl.addr)
	- Remove a wrong cpu_to_scr() (np->targtbl_ba)
	- Cleanup a bit the PPR failure recovery code.

Sat Mar 3 21:00 2001 Gerard Roudier 
	- Add option SYM_OPT_ANNOUNCE_TRANSFER_RATE and move the 
	  corresponding code to file sym_misc.c.
	  Also move the code that sniffes INQUIRY to sym_misc.c.
	  This allows to share the corresponding code with NetBSD 
	  without polluating the core driver source (sym_hipd.c).
	- Add optionnal code that handles IO timeouts from the driver.
	  (not used under Linux, but required for NetBSD)
	- Donnot assume any longer that PAGE_SHIFT and PAGE_SIZE are 
	  defined at compile time, as at least NetBSD uses variables 
	  in memory for that.
	- Refine a work-around for the C1010-33 that consists in 
	  disabling internal LOAD/STORE. Was applied up to revision 1.
	  Is now only applied to revision 0.
	- Some code reorganisations due to code moves between files.

Tues Apr 10 21:00 2001 Gerard Roudier 
	* version sym-2.1.9-20010412
	- Reset 53C896 and 53C1010 chip according to the manual.
	  (i.e.: set the ABRT bit in ISTAT if SCRIPTS are running)
	- Set #LUN in request sense only if scsi version <= 2 and
	  #LUN <= 7.
	- Set busy_itl in LCB to 1 if the LCB is allocated and a 
	  SCSI command is active. This is a simplification.
	- In sym_hcb_free(), do not scan the free_ccbq if no CCBs 
	  has been allocated. This fixes a panic if attach failed.
	- Add DT/ST (double/simple transition) in the transfer 
	  negotiation announce.
	- Forces the max number of tasks per LUN to at least 64.
	- Use pci_set_dma_mask() for linux-2.4.3 and above.
	- A couple of comments fixes.

Wed May 22:00 2001 Gerard Roudier 
	* version sym-2.1.10-20010509
	- Mask GPCNTL against 0x1c (was 0xfc) for the reading of the NVRAM.
	  This ensure LEDC bit will not be set on 896 and later chips.
	  Fix sent by Chip Salzenberg <chip@perlsupport.com>.
	- Define the number of PQS BUSes supported.
	  Fix sent by Stig Telfer <stig@api-networks.com>
	- Miscellaneous common code rearrangements due to NetBSD accel 
	  ioctl support, without impact on Linux (hopefully).

Mon July 2 12:00 2001 Gerard Roudier 
	* version sym-2.1.11-20010702
	- Add Tekram 390 U2B/U2W SCSI LED handling.
	  Submitted by Chip Salzenberg <chip@valinux.com>
	- Add call to scsi_set_pci_device() for kernels >= 2.4.4.
	- Check pci dma mapping failures and complete the IO with some 
	  error when such mapping fails.
	- Fill in instance->max_cmd_len for kernels > 2.4.0.
	- A couple of tiny fixes ...

Sun Sep 9 18:00 2001 Gerard Roudier 
	* version sym-2.1.12-20010909
	- Change my email address.
	- Add infrastructure for the forthcoming 64 bit DMA addressing support.
	  (Based on PCI 64 bit patch from David S. Miller)
	- Donnot use anymore vm_offset_t type.

Sat Sep 15 20:00 2001 Gerard Roudier 
	* version sym-2.1.13-20010916
	- Add support for 64 bit DMA addressing using segment registers.
	  16 registers for up to 4 GB x 16 -> 64 GB.

Sat Sep 22 12:00 2001 Gerard Roudier 
	* version sym-2.1.14-20010922
	- Complete rewrite of the eh handling. The driver is now using a 
	  semaphore in order to behave synchronously as required by the eh 
	  threads. A timer is also used to prevent from waiting indefinitely.

Sun Sep 30 17:00 2001 Gerard Roudier 
	* version sym-2.1.15-20010930
	- Include <linux/module.h> unconditionnaly as expected by latest
	  kernels.
	- Use del_timer_sync() for recent kernels to kill the driver timer 
	  on module release.

Sun Oct 28 15:00 2001 Gerard Roudier 
	* version sym-2.1.16-20011028
	- Slightly simplify driver configuration.
	- Prepare a new patch against linux-2.4.13.

Sat Nov 17 10:00 2001 Gerard Roudier 
	* version sym-2.1.17
	- Fix a couple of gcc/gcc3 warnings.
	- Allocate separately from the HCB the array for CCBs hashed by DSA.
	  All driver memory allocations are now not greater than 1 PAGE 
	  even on PPC64 / 4KB PAGE surprising setup.

Sat Dec 01 18:00 2001 Gerard Roudier 
	* version sym-2.1.17a
	- Use u_long instead of U32 for the IO base cookie. This is more 
	  consistent with what archs are expecting.
	- Use MMIO per default for Power PC instead of some fake normal IO,
	  as Paul Mackerras stated that MMIO works fine now on this arch.
