AACRAID Driver for Linux (take two)

Introduction
-------------------------
The aacraid driver adds support for Adaptec (http://www.adaptec.com)
RAID controllers. This is a major rewrite from the original 
Adaptec supplied driver. It has signficantly cleaned up both the code
and the running binary size (the module is less than half the size of
the original).

Supported Cards/Chipsets
-------------------------
	Adaptec 2020S
	Adaptec 2025S
	Adaptec 2120S
	Adaptec 2130S
	Adaptec 2200S
	Adaptec 2230S
	Adaptec 2240S
	Adaptec 2410SA
	Adaptec 2610SA
	Adaptec 2810SA
	Adaptec 21610SA
	Adaptec 3230S
	Adaptec 3240S
	Adaptec 4000SAS
	Adaptec 4005SAS
	Adaptec 4800SAS
	Adaptec 4805SAS
	Adaptec 5400S
	Dell PERC 2 Quad Channel
	Dell PERC 2/Si
	Dell PERC 3/Si
	Dell PERC 3/Di
	Dell CERC 2
	HP NetRAID-4M
	Legend S220
	Legend S230
	IBM ServeRAID 8i
	ICP 9014R0
	ICP 9024R0
	ICP 9047MA
	ICP 9087MA
	ICP 9085LI
	ICP 5085AU

People
-------------------------
Alan Cox <alan@redhat.com>
Christoph Hellwig <hch@infradead.org>	(updates for new-style PCI probing and SCSI host registration,
					 small cleanups/fixes)
Matt Domsch <matt_domsch@dell.com>	(revision ioctl, adapter messages)
Deanna Bonds                            (non-DASD support, PAE fibs and 64 bit, added new adaptec controllers
					 added new ioctls, changed scsi interface to use new error handler,
					 increased the number of fibs and outstanding commands to a container)

					(fixed 64bit and 64G memory model, changed confusing naming convention
					 where fibs that go to the hardware are consistently called hw_fibs and
					 not just fibs like the name of the driver tracking structure)
Mark Salyzyn <Mark_Salyzyn@adaptec.com> Fixed panic issues and added some new product ids for upcoming hbas. Performance tuning, card failover and bug mitigations.

Original Driver
-------------------------
Adaptec Unix OEM Product Group

Mailing List
-------------------------
linux-scsi@vger.kernel.org (Interested parties troll here)
Also note this is very different to Brian's original driver
so don't expect him to support it.
Adaptec does support this driver.  Contact either tech support or Mark Salyzyn.

Original by Brian Boerner February 2001
Rewritten by Alan Cox, November 2001
