1 |
3 |
xianfeng |
/* TERMS AND CONDITIONS OF USE
|
2 |
|
|
*
|
3 |
|
|
* Redistribution and use in source form, with or without modification, are
|
4 |
|
|
* permitted provided that redistributions of source code must retain the
|
5 |
|
|
* above copyright notice, this list of conditions and the following disclaimer.
|
6 |
|
|
*
|
7 |
|
|
* This software is provided `as is' by Adaptec and
|
8 |
|
|
* any express or implied warranties, including, but not limited to, the
|
9 |
|
|
* implied warranties of merchantability and fitness for a particular purpose,
|
10 |
|
|
* are disclaimed. In no event shall Adaptec be
|
11 |
|
|
* liable for any direct, indirect, incidental, special, exemplary or
|
12 |
|
|
* consequential damages (including, but not limited to, procurement of
|
13 |
|
|
* substitute goods or services; loss of use, data, or profits; or business
|
14 |
|
|
* interruptions) however caused and on any theory of liability, whether in
|
15 |
|
|
* contract, strict liability, or tort (including negligence or otherwise)
|
16 |
|
|
* arising in any way out of the use of this driver software, even if advised
|
17 |
|
|
* of the possibility of such damage.
|
18 |
|
|
*
|
19 |
|
|
****************************************************************
|
20 |
|
|
* This driver supports the Adaptec I2O RAID and DPT SmartRAID V I2O boards.
|
21 |
|
|
*
|
22 |
|
|
* CREDITS:
|
23 |
|
|
* The original linux driver was ported to Linux by Karen White while at
|
24 |
|
|
* Dell Computer. It was ported from Bob Pasteur's (of DPT) original
|
25 |
|
|
* non-Linux driver. Mark Salyzyn and Bob Pasteur consulted on the original
|
26 |
|
|
* driver.
|
27 |
|
|
*
|
28 |
|
|
* 2.0 version of the driver by Deanna Bonds and Mark Salyzyn.
|
29 |
|
|
*
|
30 |
|
|
* HISTORY:
|
31 |
|
|
* The driver was originally ported to linux version 2.0.34
|
32 |
|
|
*
|
33 |
|
|
* V2.0 Rewrite of driver. Re-architectured based on i2o subsystem.
|
34 |
|
|
* This was the first full GPL version since the last version used
|
35 |
|
|
* i2osig headers which were not GPL. Developer Testing version.
|
36 |
|
|
* V2.1 Internal testing
|
37 |
|
|
* V2.2 First released version
|
38 |
|
|
*
|
39 |
|
|
* V2.3
|
40 |
|
|
* Changes:
|
41 |
|
|
* Added Raptor Support
|
42 |
|
|
* Fixed bug causing system to hang under extreme load with
|
43 |
|
|
* management utilities running (removed GFP_DMA from kmalloc flags)
|
44 |
|
|
*
|
45 |
|
|
*
|
46 |
|
|
* V2.4 First version ready to be submitted to be embedded in the kernel
|
47 |
|
|
* Changes:
|
48 |
|
|
* Implemented suggestions from Alan Cox
|
49 |
|
|
* Added calculation of resid for sg layer
|
50 |
|
|
* Better error handling
|
51 |
|
|
* Added checking underflow conditions
|
52 |
|
|
* Added DATAPROTECT checking
|
53 |
|
|
* Changed error return codes
|
54 |
|
|
* Fixed pointer bug in bus reset routine
|
55 |
|
|
* Enabled hba reset from ioctls (allows a FW flash to reboot and use the new
|
56 |
|
|
* FW without having to reboot)
|
57 |
|
|
* Changed proc output
|
58 |
|
|
*
|
59 |
|
|
* TODO:
|
60 |
|
|
* Add 64 bit Scatter Gather when compiled on 64 bit architectures
|
61 |
|
|
* Add sparse lun scanning
|
62 |
|
|
* Add code that checks if a device that had been taken offline is
|
63 |
|
|
* now online (at the FW level) when test unit ready or inquiry
|
64 |
|
|
* command from scsi-core
|
65 |
|
|
* Add proc read interface
|
66 |
|
|
* busrescan command
|
67 |
|
|
* rescan command
|
68 |
|
|
* Add code to rescan routine that notifies scsi-core about new devices
|
69 |
|
|
* Add support for C-PCI (hotplug stuff)
|
70 |
|
|
* Add ioctl passthru error recovery
|
71 |
|
|
*
|
72 |
|
|
* NOTES:
|
73 |
|
|
* The DPT card optimizes the order of processing commands. Consequently,
|
74 |
|
|
* a command may take up to 6 minutes to complete after it has been sent
|
75 |
|
|
* to the board.
|
76 |
|
|
*
|
77 |
|
|
* The files dpti_ioctl.h dptsig.h osd_defs.h osd_util.h sys_info.h are part of the
|
78 |
|
|
* interface files for Adaptec's management routines. These define the structures used
|
79 |
|
|
* in the ioctls. They are written to be portable. They are hard to read, but I need
|
80 |
|
|
* to use them 'as is' or I can miss changes in the interface.
|
81 |
|
|
*
|
82 |
|
|
*/
|
83 |
|
|
|