Version: 0.9.10

Version: 1.1.2

2003-05-15	Mark_Salyzyn@adaptec.com

Differences between 2.4.21-rc2-ac2 kernel and our 1.1.2 versioned driver,
changes as performed by Deanna Bonds, Bob Pasteur and Mark Salyzyn.

aachba.c:
	- If the state of a logical unit is hidden, then do not report. This
	  state is typically entered when a device is being cleared.
	- Added support for the Tallahassee project, where one channel is
	  dedicated to SCSI, and the other channel is dedicated to RAID.
	- Resolved some issues surrounding PAE support and IA64.
	- If the driver is a not a boot disk driver, then set the Removable
	  bit on the inquiry strings returned by the logical units to ensure
	  that any changes in the arrays will be acquired when the device is
	  re-attached.
	- mask the SRB status with 0x3F to deal with misbehaving devices.
	- Do not report DISKs to inquiry requests on the SCSI bus except if
	  the channel is designated as a SCSI only bus.
	- Propagate check conditions to the SCSI command result.
	- Add support for programmable timeouts to propagate down toe the
	  requests.
	- If we have pae mode enabled, right after we get the adapter
	  information and determine the pae mode capability, we enable the
	  system to issue 64 bit requests.
aacraid.h:
	- Had to drop from 512 commands to 100 commands because some versions
	  of the firmware would starve commands causing a timeout reaction
	  which lead to lost commands.
	- Added a global control variable for nondasd and paemode support.
	- Dealt with some 64 bit / 32 bit issues in list_head structures and
	  helper Macros, replacing them with our own more sensitive variants.
	- Differentiated virtual and physical references to the shared fib
	  allocations.
	- information structure not synchronized to firmware, needed to add
	  a clusterchannelmask.
	- Added definitions in support of the new configuration information
	  page bits in support of Tallahassee.
	- Changed to an allocated fib pool, rather than an array in the hba
	  structure as this affected the SCSI memory pool.
	- Added some AIF definitions to permit us to sniff for container
	  changes to permit a rescan to pick up new information or targets.
commctrl.c:
	- The fib reference was changed to a physical and a virtual address,
	  absorb the name changes.
	- The list_head structure handlers have been replaced with our own,
	  absorb the name changes.
	- The fib address reported in an AIF is a physical (32 bit) reference,
	  and not a virtual (possibly 64 bit) reference.
	- added the ioctl handling for sending a raw srb (FSACTL_SEND_RAW_SRB).
comminit.c:
	- Deal with IA64 issues.
	- Change to using the physical address (32 bit) for the AIF references.
	- The list_head structure handlers have been replaced with our own,
	  absorb the name changes.
	- Observed a memory leak, free up the queue resources should we fail
	  to initialize the adapter.
commsup.c:
	- The fib reference was changed to a physical and a virtual address,
	  absorb the name changes.
	- Instead of panicking the kernel when a fib allocation was available,
	  sleep until it is available.
	- Submitted fib pointers are physical (32 bit) rather than virtual
	  (possibly 64 bit) values.
	- producer and consumer indexes should be converted over to local
	  cpu endian before comparison.
	- aac_handle_aif now sniffs AIF events and takes plug and play action
	  for container changes.
	- The aif thread is set up to be a kernel thread, and not a user
	  thread. This permits us the ability to make plug and play calls
	  without prejudice.
	- Added instrumentation to the aif thread to confirm the plug and
	  play activity and as an aid to several other debug sessions.
	- Do not age an aif context based on the last received aif, but rather
	  the last poll.
dpcsup.c:
	- The fib reference was changed to a physical and a virtual address,
	  absorb the name changes.
	- Submitted fib pointers are physical (32 bit) rather than virtual
	  (possibly 64 bit) values.
linit.c:
	- Added paemode control.
	- Added various upcoming board products, and documented better the
	  existing board product ids. This includes SATA RAID products.
	- needed to take the io_request_lock during portions of initialization.
	- allocate the fib resource separately, rather than part of adapter
	  structure to aid in the precious SCSI resources.
	- cleanup of none dasd support options.
	- Added more details about the build date of the driver to the proc
	  information.
	- dropped a change that permitted 64 bit DMA resources to be generated
	  instead of through a 32 bit bounce buffer. (it was moved to aachba.c
	  where it can be turned on after we determine the adapter's
	  capabilities).
	- max_id, max_lun and max_channel parameters are set after the
	  adapter information has been picked up (the number of channels is
	  based on the product id table now).
sa.c:
	- Context of timeout handling was incorrect, only noticed in IA64
	  bit machines (due to lack of BIOS initialization).

Differences that need further investigation and could be viewed as regressions
and added after submission:

rx.c:
	- Dropped detection of failure to generate kernel command thread.
sa.c:
	- Dropped detection of failure to generate kernel command thread.

Version: 1.1.3

2003-07-01	Mark_Salyzyn@adaptec.com

aachba.c:
	- Added aac_get_container_name to permit override of array inquiry
	  string with the set name.

2003-07-08	Mark_Salyzyn@adaptec.com

aachba.c:
	- Return 0 (success) for unsupported commands, the check condition
	  should perform the necessary action of error handling.

2003-07-10	Mark_Salyzyn@adaptec.com

aachba.c:
	- The pass-through SCSI SCB command in PAE mode was getting the fib
	  size count wrong, by using the 32 bit command, then doing an (n-1)
	  times the size of the 64 bit scatter gather. Resolution was to
	  subtract the 32 bit scatter gather, then do an n times the 64 scatter
	  gather size.
	- Only go into PAE mode if more than 4MB of memory in the system.

2003-07-10	Mark_Salyzyn@adaptec.com

linit.c:
	- Added `Family' product codes and reordered the product discovery code
	  to produce devices in PCI order rather than in product order.
	  Dell, Legend and Adaptec Families were produced with the assumption
	  of 2 available busses.

2003-07-24	Mark_Salyzyn@adaptec.com

linit.c:
	- Added Bearcat (6 ch SATA) and a commented entry for Lancer where
	  future workarounds may be necessary due to hardware constraints.
	- Set highmem_io (for kernels of 2.4.18 and above).

aachba.c:
	- Set highmem_io (for kernels of 2.4.18 and above; and when the
	  adapter is guaranteed to handle the possible address ranges it
	  will be provided).

Version: 1.1.4:

2003-07-28	Mark_Salyzyn@adaptec.com

aacraid.h+common/include/fsaioctl.h+aachba.c
	- Added the FSACTL_REGISTER_FIB_SEND function to the ioctl. This ioctl
	  is *not* a user accessible ioctl, meant only for driver use to permit
	  stacking a filter driver just ahead of the hardware layer. The call
	  to register is:

		typedef void (*fib_callback)(void *ctxt, struct fib *fibctx);
		typedef struct {
			int (*fib_send)(u16 command,
					struct fib * context,
					unsigned long fib_size,
					int priority,
					int wait,
					int reply
					fib_callback callback,
					void * ctxt);
		} fib_send_t;
		. . .
		fib_send_t original;
		int dummy_fib_send (u16 command,
				    struct fib * context,
				    unsigned long fib_size,
				    int priority,
				    int wait,
				    int reply
				    fib_callback callback,
				    void * ctxt)
		{
			return (*original->fib_send)(command, context, fib_size, priority, wait, reply, callback, ctxt);
		}
		. . .
		Scsi_Host_Template * host;
		Scsi_Device * adapter;
		original->fib_send = dummy_fib_send;
		host->ioctl(adapter, FSACTL_REGISTER_FIB_SEND, &original);

	  Return value from the ioctl include ENOTTY (not supported), EINVAL
	  (invalid argument pointer) and EBUSY (another function already
	  registered) and the original fib_send function is returned in the
	  ioctl argument structure. A NULL value for the fib_send member of the
	  structure deregisters the filter driver. The fib_callback function is
	  issued at interrupt priority and should follow all the constraints of
	  interrupt operation. It is the responsibility of the registered
	  fib_send function to ensure that the original fib_callback function
	  is called with the ctxt value when completing the command (this
	  subtlety is lost in the above dummy function).

2003-07-28	Mark_Salyzyn@adaptec.com

linit.c:
	- Added Kernel, Firmware and BIOS revision and build number to proc
	  information.
	- Added board serial number to proc information.

aachba.c:
	- Do not set removable bit in the inquiry command, the aif delivery
	  of array status change will handle the reasons for the removable
	  bit (capacity change and differences in the partition table). Some
	  customers take issue with the fact our arrays appear as removable.

commctrl.c:
	- Reported driver version and build number instead of Firmware version
	  and build number for the Miniport Version Check ioctl. ADPmp57715

2003-08-06	Mark_Salyzyn@adaptec.com and a cast of thousands

all files:
	- Added appropriate ifdefs, or merged in additions, in support of the
	  2.6.0-test2 kernels as follows:

Makefile:
	- Added ifdefs for 2.4 and 2.6 kernels so we can use a common Makefile
	  for both kernel build environments.

aachba.c:
	- use linux/blkdev.h in 2.5+ kernels.
	- define aac_spin_* macros to differentiate between lock requirements
	  in 2.5+ and 2.4 kernels.
	- Use the SCSI layers definitions of the SCSI commands, rather than
	  our own internal SS_* manifests.
	- Define SCSICMD_TO_* macros to acquire the SCSI target host, channel,
	  id and lun.
	- Use the 2.6 SAM_* status codes for return, the 2.4 system will
	  redefine the SAM_* codes to 2.4 variants.
	- Change to devname instead of devno when referencing devices to
	  simplify conversions.
	- MAXIMUM_NUM_CONTAINERS references were +/- 1 in comparisons, made
	  this value a `number' rather than a mix of `number' and `limit'.
	- Resolved `Cast of pointer from integer of different size' by
	  (void *)(ulong)dma_addr_t.
	- Change to `id' rather than `target' to match SCSI subsystem
	  references name for consistency.

aacraid.h:
	- MAXIMUM_NUM_CONTAINERS references were +/- 1 in comparisons, made
	  this value a `number' rather than a mix of `number' and `limit'.
	- Removed AAC_MAX_TARGET, as it is no longer used.
	- Added CONTAINER_TO_* macros to simplify references.
	- Change to `id' rather than `target' to match SCSI subsystem
	  references name for consistency.
	- Change to devname instead of devno when referencing devices.
	- Use cap_to_cyls inline to handle 64 bit calculation correctly.

commctrl.c:
	- use linux/blkdev.h in 2.5+ kernels.
	- Change to `id' rather than `target' to match SCSI subsystem
	  references name for consistency.

comminit.c:
	- use linux/blkdev.h in 2.5+ kernels.

commsup.c:
	- use linux/blkdev.h in 2.5+ kernels.
	- Moved CONTAINER_TO_* macros to aacraid.h to simplify references.
	- Device Discovery loops are different for 2.4 and 2.5+ kernels,
	  use list_for_each_entry siblings instead of host_queue loop.
	- daemonize adds the process name as a parameter, and requires
	  SIGKILL to be enabled to permit kernel shutdown in 2.5+ kernels.

dpcsup.c:
	- use linux/blkdev.h in 2.5+ kernels.

linit.c:
	- use linux/blkdev.h in 2.5+ kernels.
	- added aacids to provide a table hint for installers.
	- changed over to utilize ANSI structure initialization.
	- aac_biosparm and aac_procinfo change parameters in 2.5+ kernels.
	- aac_slave_configure replaces aac_queuedepth in 2.5+ kernels.
	- detect no longer needs to unlock io_request_lock to do it's duty
	  in 2.5+ kernels.
	- use SCSI_set_device in 2.5+ kernels rather than scsi_set_pci_device.
	- Change to devname instead of devno when referencing devices to
	  simplify conversions.
	- Use MAXIMUM_NUM_CONTAINERS rather than AAC_MAX_TARGET
	- Use cap_to_cyls inline to handle 64 bit calculation correctly in
	  aac_biosparm.
	- Use minor in 2.5+ kernels instead of MINOR macro.

rx.c:
	- use linux/blkdev.h in 2.5+ kernels.
	- interrupts now return irqreturn_t.

sa.c:
	- use linux/blkdev.h in 2.5+ kernels.
	- interrupts now return irqreturn_t.

2003-08-15	Mark_Salyzyn@adaptec.com

install.sh:
	- increased range of kernel version reports in the magic file to 30.

2003-08-19	Mark_Salyzyn@adaptec.com & ijohns@elipsan.com

aachba.c:
	- status_byte in the result is shifted down by one.
	- set_sense spoof was not immediately followed by a copy of the check
	  condition results into the SCSI command.

2003-08-20	Mark_Salyzyn@adaptec.com, Scott_Long@adaptec.com & Alan Cox

commctrl.c:
	- The raw SCSI SCB ioctl command in PAE mode was getting the fib
	  size count wrong, by using the 32 bit command, then doing an (n-1)
	  times the size of the 64 bit scatter gather. Resolution was to
	  subtract the 32 bit scatter gather, then do an n times the 64 scatter
	  gather size.

aacraid.h:
	- Added definition of CT_FLUSH_CACHE command and structures.
	- Added AAC_QUIRK_31BIT for ROMB based adapters.

linit.c:
	- Added AAC_QUIRK_31BIT for ROMB based adapters.
	- Check return from scsi_register.

aachba.c:
	- Added support for issuing CT_FLUSH_CACHE command when the SCSI
	  SYNCHRONIZE command is issued to a container.
	- Restored mask after adding AAC_QUIRK_31BIT for ROMB based adapters.

2003-08-21	Mark_Salyzyn@adaptec.com

aachba.c:
	- Changed aac_get_container_name to be a none-blocking function,
	  completing the incoming scsicmd with the adapter response.

2003-08-26	Mark_Salyzyn@adaptec.com

commsup.c + aacraid.h:
	- Altered handling of AIF messages from Firmware to differentiate
	  events in a finer grained manner.

2003-08-29	Mark_Salyzyn@adaptec.com

aachba.c + aacraid.h
	- Driver too noisy, undefined AAC_DETAILD_STATUS_INFO and incorporated
	  check condition report into the AAC_DETAILED_STATUS_INFO ifdef.

2003-09-03	Mark_Salyzyn@adaptec.com

aachba.c:
	- Check if the device is in use and report that as a locked device
	  to both the FSACTL_QUERY_DISK and FSACTL_DELETE_ARRAY ioctls.
	- unlock/lock around probe_container as this is a blocking function.
	  This change addresses a deadlock issue that surfaced in SMP only
	  environments.

Version: 1.1.4-2172

2003-09-04	Mark_Salyzyn@adaptec.com

commsup.c:
	- References to the Status Job update structure were at incorrect
	  offsets causing incorrect operation during an Array Clear with
	  regards to plug and play actions.

Version: 1.1.4-2177

2003-09-05	Mark_Salyzyn@adaptec.com

aachba.c:
	- Cleanup request from the SCSI list maintainers.
	- Dropped use of SCSICMD_TO_CHANNEL & friends since
	  scsicmd->device->channel is available in all versions of the
	  operating system.
	- Removed deprecated code and/or comments related to deprecation.
	- include <linux/blkdev.h> works in all versions of the operating
	  system.

2003-09-09	Mark_Salyzyn@adaptec.com

aacraid.h:
	- NUM_FIBs should be 64 larger (AIFS) larger than the NUM_IO_FIBS.

commsup.c:
	- efficiency improved if we hold on to the aac_queue variable, aims
	  towards better code compliance and consistency.

2003-09-15	Mark_Salyzyn@adaptec.com

rkt.c:
	- Copy if rx.c with rx = rkt

aacraid.h:
	- Added definition for rkt interface structures, copy of rx, but a
	  larger reserved region.

linit.c:
	- Added product code for ROC (Lancer/Rocket) U320 two channel, use rkt
	  interface.

2003-09-16	Mark_Salyzyn@adaptec.com

linit.c:
	- Show Adapter vendor and model in proc information.

Version: 1.1.4-2185

2003-09-16	Mark_Salyzyn@adaptec.com

aacraid.h:
	- Added definition of nblank() to assist us in determining if
	  dprintk(x) is defined as a blank definition to enable us to ifdef
	  debug code that ends up calling only dprintk functions.

commsup.c:
	- Ignore events that refer to containers > MAXIMUM_NUM_CONTAINERS
	- include <linux/blkdev.h> works in all versions of the operating
	  system.

linit.c:
	- print more details about outstanding commands when a SCSI hang
	  occurs (first use of nblank() macro just defined in aacraid.h)

2003-09-19	Mark_Salyzyn@adaptec.com & Mark Haverkamp <markh@osdi.org>

commsup.c & aachba.c:
	- valid flag has added support for a value of 2, which means target
	  is still valid, but needs a probe_container.

commsup.c:
	- fib_alloc should not go to sleep, but return NULL if there are no
	  available entries in the pool.

dpcsup.c:
	- print a message if the fib kmalloc fails when forwarding AIFs

comminit.c:
	- check fib_alloc return, and report -ENOMEM should the pool be
	  empty.

aachba.c:
	- Check value of scsicmd->scsi_done in aac_io_done as we can get
	  errant firmware which returns commands twice (no released firmware
	  does this, this is a driver hardening issue only).
	- When a fib_alloc fails, return -1 to SCSI layer. Formerly, we would
	  send the command with DID_ERROR.

Version: 1.1.4-2192

2003-09-25	Mark_Salyzyn@adaptec.com

linit.c:
	- Moved debug variables into block to reduce impact on none-debug
	  environments.

dpcsup.c + commsup.c:
	- Use the fib pool instead of a kmalloc to allocate a fib for the
	  processing of an AIF.

install.sh:
	- Install driver into any forgotten /lib/modules directories.

2003-09-26	Mark_Salyzyn@adaptec.com

commctrl.c + aacraid.h:
	- AMD-64 and IA-64 management applications will fail, need to change
	  fibctx to a 32 bit unique value.

Version: 1.1.4-2194

2003-09-29	Mark_Salyzyn@adaptec.com & Mark Haverkamp <markh@osdi.org>

aachba.c:
	- use linux/blkdev.h for all variants on Linux.
	- hold on to the host pointer in aac_io_done, because it's reference
	  in the device and scsicmd can go away after scsi_done is called.
	- check return value of pci_set_dma_mask.

commctrl.c:
	- use linux/blkdev.h for all variants on Linux.

comminit.c:
	- use linux/blkdev.h for all variants on Linux.

commsup.c:
	- use linux/blkdev.h for all variants on Linux.
	- drop linux/smp_lock.h include as it was added in a debug test from
	  some time ago.
	- Added current 2.6 kernel support routines for rescanning.

dpcsup.c:
	- use linux/blkdev.h for all variants on Linux.

linit.c:
	- use linux/blkdev.h for all variants on Linux.
	- check return value of pci_set_dma_mask.
	- template->present is no longer relevant in 2.6 based kernels.

rx.c:
	- use linux/blkdev.h for all variants on Linux.

sa.c:
	- use linux/blkdev.h for all variants on Linux.

rkt.c:
	- use linux/blkdev.h for all variants on Linux.

2003-10-01	Mark_Salyzyn@adaptec.com

commsup.c:
	- needed a fib_dealloc call ahead of the fib_free call added when
	  we moved over to the fib pool to handle the AIFs.

dpcsup.c:
	- need to use the `local' fibctx so that the AIF command can be
	  acknowledged.

commctrl.c:
	- return error status from the send_fib function in ioctl_send_fib.

2003-10-07	Mark_Salyzyn@adaptec.com

aachba.c + linit.c:
	- serial number contains the cookie (fafa0001) that is at index 1
	  of the serial number element. Only show the serial number which
	  is at index 0.

linit.c:
	- Added registration to receive 32 bit ioctls.

commsup.c + dpcsup.c + aacraid.h:
	- Dropped code to acquire AIF's from the general FIB pool, it was a
	  fool's errand. However, we kept the code that limits the AIF's
	  received and allocated to the AdapterFibsSize / sizeof(hw_fib).
	  The `last' AIF hw_fib is used to quickly acknowledge the entries,
	  and drop the results on the floor.

rx.c + rkt.c:
	- Cache the OIMR data in dev->OIMR, it looks remarkably like irq_mask,
	  which is really unused, but we can clean that up later.

2003-10-08	Matthew Wilcox <willy@debian.org>

aachba.c:
	- Use SCp.dma_handle instead of SCp.ptr for holding on to the physical
	  address of the allocated pci_map_single as part of the request.

compat.h:
	- define dma_handle to be ptr (in support of SCp.dma_handle change
	  above) for kernels that do not define this member.

2003-10-08	Christoph Hellwig <hch@infradead.org>

aachba.c:
	- drop use of scsi_to_pci_dma_dir() as it is a pass-through in all
	  versions of the kernel.

2003-10-09	Mark_Salyzyn@adaptec.com

linit.c:
	- When an Adapter Reset is requested, wait up to 60 seconds for all
	  outstanding commands to complete and report SUCCESS.

Version: 1.1.4-2221

2003-10-09	Mark_Salyzyn@adaptec.com

linit.c:
	- Waited for *all* commands to complete for *all* devices on the
	  controller when an Adapter Reset is requested.

Version: 1.1.4-2222

2003-10-10	Mark_Salyzyn@adaptec.com

aacraid.h + rx.c + rkt.c + sa.c + linit.c:
	- Added a aac_adapter_check_health, make sure the adapter is healthy
	  when performing and Adapter Reset request, report error codes.

aachba.c:
	- revert to use of scsi_to_pci_dma_dir() as it is not a pass-through in
	  all versions of the kernel.

linit.c:
	- SCSI_HAS_HOST_LOCK means that we should be working with releasing
	  host->lock or host->host_lock instead of io_request_lock surrounding
	  scsi_sleep.

aacraid.h:
	- Added definition for AAC_MAX_HOSTPHYSMEMPAGES

comminit.c:
	- Utilized AAC_MAX_HOSTPHYSMEMPAGES to limit the number of open DMA
	  4096 byte PAGES of memory requested by the operating system.

2003-10-16	Mark_Salyzyn@adaptec.com

install.sh:
	- Added support for x86_64 installs

aachba.c:
	- used SENSE KEYS from scsi.h rather than our own definitions.

2003-10-20	Xose Vazquez Perez <xose@wanadoo.es>

linit.c:
	- Added pci_ids for 0x10110046/0x90050365

Version: 1.1.4-2265

2003-10-23	Mark_Salyzyn@adaptec.com

linit.c:
	- no need to set template->present as this is done by the SCSI layer.

2003-10-24	Mark_Salyzyn@adaptec.com

install.sh
	- Added support for SuSE kernel determination for finer selection
	  of modules
	- If the kernel is compiled for athlon, use that instead of
	  /proc/cpuinfo
	- if /proc/cpuinfo is not present, don't show any errors during
	  install

2003-10-28	Mark_Salyzyn@adaptec.com

install.sh
	- The entire class of SuSE OS releases (sles7, sles8, suse7, suse8,
	  suse8.1, suse8.2, ul1, ul1-sp2a) place the driver module results into
	  /lib/modules/[kernel]/kernel/drivers/scsi/aacraid/aacraid.o. The
	  package places updates in ...//scsi/aacraid.o (note, one directory
	  up). The module selected for use in the mkinitrd is fed via a `find'
	  command which reports files in raw directory order which in the
	  reiser file system would be in the .../scsi directory, but for EXT2
	  since the file was added later, would prefer the previously placed
	  product in ../scsi/aacraid/aacraid.o. The fix is to have the driver
	  disk post-install remove the older .../scsi/aacraid directory.

2003-10-30	Mark_Salyzyn@adaptec.com

install.sh
	- For the installations to `extra' /lib/modules directories beyond
	  the boot set, take the processor clue from the postscript (-athlon,
	  -x86_64 or -ia64) rather than from /proc/cpuinfo.

Version: 1.1.4-2282
Version: 1.1.4-2292 (Debug)

2003-10-31	Mark_Salyzyn@adaptec.com

aacraid.h + aachba.c:
	- Added a nested count to the fsa_scsi_dev structure since some kernels
	  before 2.4.19 have troubles overflowing their stack when a device
	  goes offline. The issue is that the SCSI done call nests into sending
	  another queued command, which in turn spoofs a response back
	  indicating failure which in turn calls SCSI done. We limit the
	  nesting to 64 commands before we respond with a busy instead.

Version: 1.1.4-2296 (Debug)

linit.c & .version:
	- Versioning is defined by the structure:
	    struct {
		unsigned char dash; // Dash version number
		unsigned char type; // Type, 1=Devo, 2=Alpha, 3=Beta, 4=Release
		unsigned char minor;// Minor version minor
		unsigned char major;// Major version number
	    }
	  Adjusted version data to match this definition for generation and
	  support.

Version: 1.1.4-2299
Version: 1.1.4-2301
Version: 1.1.4-2302
Version: 1.1.4-2303

linit.c & aacraid.h:
	- Allow 64 bit apps to call GET_NEXT_ADAPTER_FIB ioctl directly,
	  promoting 32 bit apps when they call.

aachba.c & aacraid.h:
	- Set MAX_NESTED to 1, and improve code to reflect this simplicity.

install.sh:
	- Handle name change of products from *-athlon-athlon to *-athlon.
	- Warn the user if the initrd shrinks too much

Version: 1.1.4-2308

install.sh:
	- Add support for identifying 2.4.19-340 kernels.

2003-12-12	Mark Haverkamp <markh@osdl.org>

linit.c:
	- updated aac_eh_reset to use __shost_for_each_device now that the
	  device element is now private and we're supposed to use the helper
	  function for access.

Version: 1.1.4-2309
Version: 1.1.4-2310 (debug)

2003-12-18	Mark Salyzyn <Mark_Salyzyn@adaptec.com>

linit.c:
	- suppress unused variable warning in debug code.
	- cast sys_ioctl when registering as it does not match prototype
	  argument for ioctl32 registration.

Version: 1.1.4-2311

2003-12-22	Mark Haverkamp <markh@osdl.org>

aachba.c:
	- change from pae to dac as this is the more public understanding of
	  the 64 bit support concepts.
aacraid.h:
	- Remove padding and SavedIrql
commsup.c + aachba.c:
	- use atomic_read when accessing access_count member of device
	  structure.
linit.c & aacraid.h
	- iminor takes the inode, not the inode->i_rdev member.

Version: 1.1.4-2313

aachba.c + commsup.c:
	- use device_busy, shost_status, in_recovery instead of just
	  access_count. Adjust for each OS release variant.

Version: 1.1.4-2314

2003-12-22: Ken Beaty <ken@nova.org>

aachba.c + commsup.c:
	- Adjusted ifdefs for kernel version to make more sense.

2004-01-24: Mark Salyzyn <Mark_Salyzyn@adaptec.com>

install.sh:
	- Altered script to discover prebuilt binaries from the classic
	  Adaptec rpm package, the Red Hat install disk format, or the
	  SuSE install disk format.

2004-02-09: Christoph Hellwig <hch@lst.de>

aachba.c:
	- Remove fsa_dev structure since fsa_dev is always available.

Version: 1.1.4-2324

2004-02-10: Submit to scsi list for inclusion

2004-02-17: Herve MORILLON <hmorillon@doremilabs.fr> + Mark_Salyzyn@adaptec.com

rx.c + rkt.c:
	- hit doorbell before processing host_command_normal

aachba.c:
	- Permit requests larger than 64KB

aacraid.h:
	- Permit 512 outstanding requests

Version: 1.1.5-2326

linit.c + build:
	- Added support for vary_io, unfortunately the build system also needed
	  to be adjusted to generate the SCSI_HAS_VARY_IO if the member is
	  seen in the drivers/scsi/hosts.h file.

build + install.sh:
	- Added support for 2.4.19-189, 2.4.19-191 and 2.4.19-201 SuSE Kernels

Version: 1.1.5-2327

rkt.c + rx.c:
	- Added support to issue the Temperature sync command. Since the
	  cost of the sync command should not increase, the decision was
	  made to support a `varargs' approach to dealing with the additional
	  temperature elements *only* for this command.

linit.c:
	- Added a proc write that accepts the string "Temperature=[0-9.],..."
	  to send the off-board temperature value to the Firmware so that it
	  may be integrated into the Enclosure Data.
	- Added SkyHawk SATA cards to device list. 2020S changes now to 
	  2020ZCR, and we add 2020SA.

aachba.c:
	- PERCRAID RAID-5 is superfluous, changed to to PERC RAID-5.

Version: 1.1.5-2328

linit.c + aacraid.h:
	- Migrate towards using CONFIG_COMPAT instead of __x86_64__

rx.c + rkt.c:
	- Added support to pick up an Adapter Blink code. ADPmp64499.

linit.c:
	- Report the Adapter Blink code to the console log. ADPmp64499.

build:
	- Correctly built the x86_64 SLES8 and ul1 driver disk. Side effects
	  discovered also fix problems with ia32 SLES8 install. ADPmp64499.

Version: 1.1.5-2329

linit.c + aacraid.h:
	- Report an AifExeFirmwarePanic AIF message to applications when the
	  adapter is in a blinkled state.

aachba.c + commsup.c: Brad House <brad@mainstreetsoftworks.com>
	- use shost_for_each_device instead of list_for_each_entry.

linit.c + aachba.c:
	- xscale (arm) systems can not have highmem_io set as virtual/phys
	  handling does not recognize the page/offset addressing.

rkt.c + rx.c:
	- The Mailbox[7] in none BBS systems is not active until shortly
	  before the Firmware kernel is booted. The Outbound Message register
	  is always active and contains the same bringup conditions. We must
	  look at the OMR during the *_init wait.

Version: 1.1.5-2330

rkt.c + rx.c + sa.c:
	- Set the time by using get_seconds (epoch January 1 1970) instead
	  of jiffies/HZ (epoch machine startup). get_seconds is provided
	  for kernels < 2.6.

Version: 1.1.5-2331

rkt.c:
	- Mailbox[7] becomes momentarily inaccessible right after PATUWAIT
	  on the Callisto, lets loop on OMR only. Do not know if this
	  problem exists on other systems.

Version: 1.1.5-2332

aachba.c + linit.c:
	- Issue CT_COMMIT_CONFIG before issuign the VM_NameServe. This is
	  for systems that do not have a BIOS to perform this step.

Version: 1.1.5-2333

aacraid.h:
	- SAS requires the ability to handle as many as 32 Adapters in a
	  system, increased the manifest that limits the number of Adapters.
	- Testing has shown that allowing 33MB I/O can starve a machine, so
	  we are limiting the maximum I/O size to 4MB (to match other drivers
	  that permit large I/O).

linit.c:
	- Make sure that the driver does not register more than
	  AAC_MAXIMUM_ADAPTERS instances.
	- Set the queue depth to each device as divided up from AAC_MAX_IO_FIB

commctrl.c: Chris Wright <chrisw@osdl.org>
	- aac_send_raw_srb added check for bounding of fibsize value.

all: Mark Haverkamp <markh@osdl.org> & Mark Salyzyn <Mark_Salyzyn@adaptec.com>
	- merge 2.6 driver changes into tree to synchronize.

Version: 1.1.5-2334

aacraid.h+linit.c+commctrl.c+comminit.c:
	- Added sg_tablesize and max_fib_size to adapter structure and
	  negotiate these plus Scsi_Host sg_tablesize, can_queue and
	  max_sectors based on the adapter capabilities.

aachba.c:
	- Added aac_raw_io command
	- Recognize that read_callback is identical to write_callback, which
	  is in turn identical to raw_io's need for a callback. Renamed to
	  one callback function io_callback.

rx.c+rkt.c+sa.c:
	- Moved initialization around to permit New Command Interface probes
	- dropped irq_mask and associated functions.
	- moved acknowledgement of F/W commands *before* processing so that
	  we get re-interrupted if a new command is added to the produced
	  index while we are processing.

linit.c+aachba.c:
	- Do not print `bad0' for the serial number

linit.c:
	- this_id = 32, because it gets in the way of Container 16 being
	  processed.

aachba.c:
	- scsi_add_timer call issued just before completion routine called
	  since error recovery handler is there *just* to detect card
	  failure and not to affect command processing.

build:
	- Added 2.4.19.SuSE-343 kernel in support of ul1-sles8-ia32 install,
	  which adds yet another installation floppy to the list.

Version: 1.1.5-2335

linit.c+all:
	- Revert temporarily to 1.1.4-2177, Changed ASR-2020S to ASR-2020ZCR,
	  and ASR-2020S Terminator to ASR-2025ZCR.

Version: 1.1.4-2336

linit.c+all:
	- Revert temporarily to 1.1.4-2322, Changed ASR-2020S to ASR-2020ZCR,
	  and ASR-2020S Terminator to ASR-2025ZCR.

Version: 1.1.4-2337

all:
	- Revert back to 1.1.5 code base.

commsup.c:
	- Fix Irq Moderation code. A Misnomer, since this is really a PCI
	  utilization moderation, interrupts are not recurring on F/W.

comminit.c:
	- Turn on Irq Moderation feature (Tentatively 30% reduction in Host
	  CPU utilization)

Version: 1.1.5-2337

aacraid.h+commsup.c+dpcsup.c+comminit.c+rx.c:
	- Added support for the new comm interface.

linit.c:
	- Added debug information to proc output

Version: 1.1.5-2338

commsup.c: Mark Haverkamp <markh@osdl.org>
	- Added scsi/scsi_device.h, scsi/scsi_driver.h to include file set
	- set removable to a value of 1, not to TRUE.

aachba.c: Mark_Salyzyn@adaptec.com
	- Switch to using max_fib_size rather than FIB_DATA_SIZE_IN_BYTES,
	  this permits SAS management applications to send ioctl FIBs larger
	  than 512 bytes in size to adapters that accept larger FIBs.
	- Added support for SAI_READ_CAPACITY_16, READ_12, WRITE_12, READ_16
	  and WRITE_16 commands.
	- Played `tricks' with device_blocked and queue_depth fields in the
	  scsi_device structure to meter the outstanding commands down when
	  large sequential activity is detected.

aacraid.h: Mark_Salyzyn@adaptec.com
	- Remove unused definition of FIB_DATA_SIZE_IN_BYTES.

Version: 1.1.5-2339

build: Mark_Salyzyn@adaptec.com
	- Added support for 2.6.4-52 SuSE 9.1 Pro install
	- Added support for multiple architectures for 2.4.21-15.EL RHEL3 QU2
	  install.

aacraid.h+aachba.c+linit.c: Mark Haverkamp <markh@osdl.org>
	- Define 2131 as FSACTL_GET_CONTAINERS

commctrl.c: Mark_Salyzyn@adaptec.com
	- change all printk() to dprintk(()) as this is a user initiated
	  call for aac_send_rw_srb & aac_get_pci_info.

rx.c+rkt.c: Mark_Salyzyn@adaptec.com
	- use pci_alloc_consistent/pci_free_consistent instead of an
	  unchecked combination of kmalloc(,_GFP_DMA)/pci_map_single/
	  pci_unmap_single/kfree.

Version: 1.1.5-2340
