aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/mpt2sas/mpi
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-01-07 15:47:02 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2011-01-07 15:47:02 -0500
commitda40d036fd716f0efb2917076220814b1e927ae1 (patch)
tree567893573a48e2954d82421e77606034d3b32f84 /drivers/scsi/mpt2sas/mpi
parentaa58abc20fa85328a9f048e2626c0893691ff284 (diff)
parentc32e061fa19893ce4acf95d97d5613a161f0f1b7 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (147 commits) [SCSI] arcmsr: fix write to device check [SCSI] lpfc: lower stack use in lpfc_fc_frame_check [SCSI] eliminate an unnecessary local variable from scsi_remove_target() [SCSI] libiscsi: use bh locking instead of irq with session lock [SCSI] libiscsi: do not take host lock in queuecommand [SCSI] be2iscsi: fix null ptr when accessing task hdr [SCSI] be2iscsi: fix gfp use in alloc_pdu [SCSI] libiscsi: add more informative failure message during iscsi scsi eh [SCSI] gdth: Add missing call to gdth_ioctl_free [SCSI] bfa: remove unused defintions and misc cleanups [SCSI] bfa: remove inactive functions [SCSI] bfa: replace bfa_assert with WARN_ON [SCSI] qla2xxx: Use sg_next to fetch next sg element while walking sg list. [SCSI] qla2xxx: Fix to avoid recursive lock failure during BSG timeout. [SCSI] qla2xxx: Remove code to not reset ISP82xx on failure. [SCSI] qla2xxx: Display mailbox register 4 during 8012 AEN for ISP82XX parts. [SCSI] qla2xxx: Don't perform a BIG_HAMMER if Get-ID (0x20) mailbox command fails on CNAs. [SCSI] qla2xxx: Remove redundant module parameter permission bits [SCSI] qla2xxx: Add sysfs node for displaying board temperature. [SCSI] qla2xxx: Code cleanup to remove unwanted comments and code. ...
Diffstat (limited to 'drivers/scsi/mpt2sas/mpi')
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2.h9
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h20
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_history.txt3
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_init.h9
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_ioc.h8
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_raid.h6
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_sas.h9
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_tool.h49
8 files changed, 95 insertions, 18 deletions
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2.h b/drivers/scsi/mpt2sas/mpi/mpi2.h
index 4b1c2f0350f9..8be75e65f763 100644
--- a/drivers/scsi/mpt2sas/mpi/mpi2.h
+++ b/drivers/scsi/mpt2sas/mpi/mpi2.h
@@ -8,7 +8,7 @@
8 * scatter/gather formats. 8 * scatter/gather formats.
9 * Creation Date: June 21, 2006 9 * Creation Date: June 21, 2006
10 * 10 *
11 * mpi2.h Version: 02.00.15 11 * mpi2.h Version: 02.00.16
12 * 12 *
13 * Version History 13 * Version History
14 * --------------- 14 * ---------------
@@ -61,6 +61,8 @@
61 * Added define for MPI2_FUNCTION_PWR_MGMT_CONTROL. 61 * Added define for MPI2_FUNCTION_PWR_MGMT_CONTROL.
62 * Added defines for product-specific range of message 62 * Added defines for product-specific range of message
63 * function codes, 0xF0 to 0xFF. 63 * function codes, 0xF0 to 0xFF.
64 * 05-12-10 02.00.16 Bumped MPI2_HEADER_VERSION_UNIT.
65 * Added alternative defines for the SGE Direction bit.
64 * -------------------------------------------------------------------------- 66 * --------------------------------------------------------------------------
65 */ 67 */
66 68
@@ -86,7 +88,7 @@
86#define MPI2_VERSION_02_00 (0x0200) 88#define MPI2_VERSION_02_00 (0x0200)
87 89
88/* versioning for this MPI header set */ 90/* versioning for this MPI header set */
89#define MPI2_HEADER_VERSION_UNIT (0x0F) 91#define MPI2_HEADER_VERSION_UNIT (0x10)
90#define MPI2_HEADER_VERSION_DEV (0x00) 92#define MPI2_HEADER_VERSION_DEV (0x00)
91#define MPI2_HEADER_VERSION_UNIT_MASK (0xFF00) 93#define MPI2_HEADER_VERSION_UNIT_MASK (0xFF00)
92#define MPI2_HEADER_VERSION_UNIT_SHIFT (8) 94#define MPI2_HEADER_VERSION_UNIT_SHIFT (8)
@@ -929,6 +931,9 @@ typedef struct _MPI2_MPI_SGE_UNION
929#define MPI2_SGE_FLAGS_IOC_TO_HOST (0x00) 931#define MPI2_SGE_FLAGS_IOC_TO_HOST (0x00)
930#define MPI2_SGE_FLAGS_HOST_TO_IOC (0x04) 932#define MPI2_SGE_FLAGS_HOST_TO_IOC (0x04)
931 933
934#define MPI2_SGE_FLAGS_DEST (MPI2_SGE_FLAGS_IOC_TO_HOST)
935#define MPI2_SGE_FLAGS_SOURCE (MPI2_SGE_FLAGS_HOST_TO_IOC)
936
932/* Address Size */ 937/* Address Size */
933 938
934#define MPI2_SGE_FLAGS_32_BIT_ADDRESSING (0x00) 939#define MPI2_SGE_FLAGS_32_BIT_ADDRESSING (0x00)
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h b/drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h
index e3728d736d85..d76a65847603 100644
--- a/drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h
+++ b/drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h
@@ -6,7 +6,7 @@
6 * Title: MPI Configuration messages and pages 6 * Title: MPI Configuration messages and pages
7 * Creation Date: November 10, 2006 7 * Creation Date: November 10, 2006
8 * 8 *
9 * mpi2_cnfg.h Version: 02.00.14 9 * mpi2_cnfg.h Version: 02.00.15
10 * 10 *
11 * Version History 11 * Version History
12 * --------------- 12 * ---------------
@@ -121,6 +121,10 @@
121 * Added MPI2_CONFIG_PAGE_SASIOUNIT_6 and related defines. 121 * Added MPI2_CONFIG_PAGE_SASIOUNIT_6 and related defines.
122 * Added MPI2_CONFIG_PAGE_SASIOUNIT_7 and related defines. 122 * Added MPI2_CONFIG_PAGE_SASIOUNIT_7 and related defines.
123 * Added MPI2_CONFIG_PAGE_SASIOUNIT_8 and related defines. 123 * Added MPI2_CONFIG_PAGE_SASIOUNIT_8 and related defines.
124 * 05-12-10 02.00.15 Added MPI2_RAIDVOL0_STATUS_FLAG_VOL_NOT_CONSISTENT
125 * define.
126 * Added MPI2_PHYSDISK0_INCOMPATIBLE_MEDIA_TYPE define.
127 * Added MPI2_SAS_NEG_LINK_RATE_UNSUPPORTED_PHY define.
124 * -------------------------------------------------------------------------- 128 * --------------------------------------------------------------------------
125 */ 129 */
126 130
@@ -333,7 +337,7 @@ typedef struct _MPI2_CONFIG_REQUEST
333#define MPI2_CONFIG_ACTION_PAGE_READ_NVRAM (0x06) 337#define MPI2_CONFIG_ACTION_PAGE_READ_NVRAM (0x06)
334#define MPI2_CONFIG_ACTION_PAGE_GET_CHANGEABLE (0x07) 338#define MPI2_CONFIG_ACTION_PAGE_GET_CHANGEABLE (0x07)
335 339
336/* values for SGLFlags field are in the SGL section of mpi2.h */ 340/* use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */
337 341
338 342
339/* Config Reply Message */ 343/* Config Reply Message */
@@ -379,6 +383,8 @@ typedef struct _MPI2_CONFIG_REPLY
379#define MPI2_MFGPAGE_DEVID_SAS2116_1 (0x0064) 383#define MPI2_MFGPAGE_DEVID_SAS2116_1 (0x0064)
380#define MPI2_MFGPAGE_DEVID_SAS2116_2 (0x0065) 384#define MPI2_MFGPAGE_DEVID_SAS2116_2 (0x0065)
381 385
386#define MPI2_MFGPAGE_DEVID_SSS6200 (0x007E)
387
382#define MPI2_MFGPAGE_DEVID_SAS2208_1 (0x0080) 388#define MPI2_MFGPAGE_DEVID_SAS2208_1 (0x0080)
383#define MPI2_MFGPAGE_DEVID_SAS2208_2 (0x0081) 389#define MPI2_MFGPAGE_DEVID_SAS2208_2 (0x0081)
384#define MPI2_MFGPAGE_DEVID_SAS2208_3 (0x0082) 390#define MPI2_MFGPAGE_DEVID_SAS2208_3 (0x0082)
@@ -390,6 +396,8 @@ typedef struct _MPI2_CONFIG_REPLY
390#define MPI2_MFGPAGE_DEVID_SAS2308_3 (0x006E) 396#define MPI2_MFGPAGE_DEVID_SAS2308_3 (0x006E)
391 397
392 398
399
400
393/* Manufacturing Page 0 */ 401/* Manufacturing Page 0 */
394 402
395typedef struct _MPI2_CONFIG_PAGE_MAN_0 403typedef struct _MPI2_CONFIG_PAGE_MAN_0
@@ -729,6 +737,7 @@ typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_1
729/* IO Unit Page 1 Flags defines */ 737/* IO Unit Page 1 Flags defines */
730#define MPI2_IOUNITPAGE1_ENABLE_HOST_BASED_DISCOVERY (0x00000800) 738#define MPI2_IOUNITPAGE1_ENABLE_HOST_BASED_DISCOVERY (0x00000800)
731#define MPI2_IOUNITPAGE1_MASK_SATA_WRITE_CACHE (0x00000600) 739#define MPI2_IOUNITPAGE1_MASK_SATA_WRITE_CACHE (0x00000600)
740#define MPI2_IOUNITPAGE1_SATA_WRITE_CACHE_SHIFT (9)
732#define MPI2_IOUNITPAGE1_ENABLE_SATA_WRITE_CACHE (0x00000000) 741#define MPI2_IOUNITPAGE1_ENABLE_SATA_WRITE_CACHE (0x00000000)
733#define MPI2_IOUNITPAGE1_DISABLE_SATA_WRITE_CACHE (0x00000200) 742#define MPI2_IOUNITPAGE1_DISABLE_SATA_WRITE_CACHE (0x00000200)
734#define MPI2_IOUNITPAGE1_UNCHANGED_SATA_WRITE_CACHE (0x00000400) 743#define MPI2_IOUNITPAGE1_UNCHANGED_SATA_WRITE_CACHE (0x00000400)
@@ -1347,6 +1356,7 @@ typedef struct _MPI2_CONFIG_PAGE_RAID_VOL_0
1347#define MPI2_RAIDVOL0_STATUS_FLAG_CAPACITY_EXPANSION (0x00040000) 1356#define MPI2_RAIDVOL0_STATUS_FLAG_CAPACITY_EXPANSION (0x00040000)
1348#define MPI2_RAIDVOL0_STATUS_FLAG_BACKGROUND_INIT (0x00020000) 1357#define MPI2_RAIDVOL0_STATUS_FLAG_BACKGROUND_INIT (0x00020000)
1349#define MPI2_RAIDVOL0_STATUS_FLAG_RESYNC_IN_PROGRESS (0x00010000) 1358#define MPI2_RAIDVOL0_STATUS_FLAG_RESYNC_IN_PROGRESS (0x00010000)
1359#define MPI2_RAIDVOL0_STATUS_FLAG_VOL_NOT_CONSISTENT (0x00000080)
1350#define MPI2_RAIDVOL0_STATUS_FLAG_OCE_ALLOWED (0x00000040) 1360#define MPI2_RAIDVOL0_STATUS_FLAG_OCE_ALLOWED (0x00000040)
1351#define MPI2_RAIDVOL0_STATUS_FLAG_BGI_COMPLETE (0x00000020) 1361#define MPI2_RAIDVOL0_STATUS_FLAG_BGI_COMPLETE (0x00000020)
1352#define MPI2_RAIDVOL0_STATUS_FLAG_1E_OFFSET_MIRROR (0x00000000) 1362#define MPI2_RAIDVOL0_STATUS_FLAG_1E_OFFSET_MIRROR (0x00000000)
@@ -1469,11 +1479,15 @@ typedef struct _MPI2_CONFIG_PAGE_RD_PDISK_0
1469#define MPI2_PHYSDISK0_INCOMPATIBLE_MAX_LBA (0x03) 1479#define MPI2_PHYSDISK0_INCOMPATIBLE_MAX_LBA (0x03)
1470#define MPI2_PHYSDISK0_INCOMPATIBLE_SATA_EXTENDED_CMD (0x04) 1480#define MPI2_PHYSDISK0_INCOMPATIBLE_SATA_EXTENDED_CMD (0x04)
1471#define MPI2_PHYSDISK0_INCOMPATIBLE_REMOVEABLE_MEDIA (0x05) 1481#define MPI2_PHYSDISK0_INCOMPATIBLE_REMOVEABLE_MEDIA (0x05)
1482#define MPI2_PHYSDISK0_INCOMPATIBLE_MEDIA_TYPE (0x06)
1472#define MPI2_PHYSDISK0_INCOMPATIBLE_UNKNOWN (0xFF) 1483#define MPI2_PHYSDISK0_INCOMPATIBLE_UNKNOWN (0xFF)
1473 1484
1474/* PhysDiskAttributes defines */ 1485/* PhysDiskAttributes defines */
1486#define MPI2_PHYSDISK0_ATTRIB_MEDIA_MASK (0x0C)
1475#define MPI2_PHYSDISK0_ATTRIB_SOLID_STATE_DRIVE (0x08) 1487#define MPI2_PHYSDISK0_ATTRIB_SOLID_STATE_DRIVE (0x08)
1476#define MPI2_PHYSDISK0_ATTRIB_HARD_DISK_DRIVE (0x04) 1488#define MPI2_PHYSDISK0_ATTRIB_HARD_DISK_DRIVE (0x04)
1489
1490#define MPI2_PHYSDISK0_ATTRIB_PROTOCOL_MASK (0x03)
1477#define MPI2_PHYSDISK0_ATTRIB_SAS_PROTOCOL (0x02) 1491#define MPI2_PHYSDISK0_ATTRIB_SAS_PROTOCOL (0x02)
1478#define MPI2_PHYSDISK0_ATTRIB_SATA_PROTOCOL (0x01) 1492#define MPI2_PHYSDISK0_ATTRIB_SATA_PROTOCOL (0x01)
1479 1493
@@ -1545,6 +1559,7 @@ typedef struct _MPI2_CONFIG_PAGE_RD_PDISK_1
1545#define MPI2_SAS_NEG_LINK_RATE_SATA_OOB_COMPLETE (0x03) 1559#define MPI2_SAS_NEG_LINK_RATE_SATA_OOB_COMPLETE (0x03)
1546#define MPI2_SAS_NEG_LINK_RATE_PORT_SELECTOR (0x04) 1560#define MPI2_SAS_NEG_LINK_RATE_PORT_SELECTOR (0x04)
1547#define MPI2_SAS_NEG_LINK_RATE_SMP_RESET_IN_PROGRESS (0x05) 1561#define MPI2_SAS_NEG_LINK_RATE_SMP_RESET_IN_PROGRESS (0x05)
1562#define MPI2_SAS_NEG_LINK_RATE_UNSUPPORTED_PHY (0x06)
1548#define MPI2_SAS_NEG_LINK_RATE_1_5 (0x08) 1563#define MPI2_SAS_NEG_LINK_RATE_1_5 (0x08)
1549#define MPI2_SAS_NEG_LINK_RATE_3_0 (0x09) 1564#define MPI2_SAS_NEG_LINK_RATE_3_0 (0x09)
1550#define MPI2_SAS_NEG_LINK_RATE_6_0 (0x0A) 1565#define MPI2_SAS_NEG_LINK_RATE_6_0 (0x0A)
@@ -1571,6 +1586,7 @@ typedef struct _MPI2_CONFIG_PAGE_RD_PDISK_1
1571#define MPI2_SAS_PHYINFO_PHY_VACANT (0x80000000) 1586#define MPI2_SAS_PHYINFO_PHY_VACANT (0x80000000)
1572 1587
1573#define MPI2_SAS_PHYINFO_PHY_POWER_CONDITION_MASK (0x18000000) 1588#define MPI2_SAS_PHYINFO_PHY_POWER_CONDITION_MASK (0x18000000)
1589#define MPI2_SAS_PHYINFO_SHIFT_PHY_POWER_CONDITION (27)
1574#define MPI2_SAS_PHYINFO_PHY_POWER_ACTIVE (0x00000000) 1590#define MPI2_SAS_PHYINFO_PHY_POWER_ACTIVE (0x00000000)
1575#define MPI2_SAS_PHYINFO_PHY_POWER_PARTIAL (0x08000000) 1591#define MPI2_SAS_PHYINFO_PHY_POWER_PARTIAL (0x08000000)
1576#define MPI2_SAS_PHYINFO_PHY_POWER_SLUMBER (0x10000000) 1592#define MPI2_SAS_PHYINFO_PHY_POWER_SLUMBER (0x10000000)
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_history.txt b/drivers/scsi/mpt2sas/mpi/mpi2_history.txt
index bd6c92b5fae5..b1e88f26b748 100644
--- a/drivers/scsi/mpt2sas/mpi/mpi2_history.txt
+++ b/drivers/scsi/mpt2sas/mpi/mpi2_history.txt
@@ -291,6 +291,7 @@ mpi2_raid.h
291 * can be sized by the build environment. 291 * can be sized by the build environment.
292 * 07-30-09 02.00.04 Added proper define for the Use Default Settings bit of 292 * 07-30-09 02.00.04 Added proper define for the Use Default Settings bit of
293 * VolumeCreationFlags and marked the old one as obsolete. 293 * VolumeCreationFlags and marked the old one as obsolete.
294 * 05-12-10 02.00.05 Added MPI2_RAID_VOL_FLAGS_OP_MDC define.
294 * -------------------------------------------------------------------------- 295 * --------------------------------------------------------------------------
295 296
296mpi2_sas.h 297mpi2_sas.h
@@ -301,6 +302,7 @@ mpi2_sas.h
301 * Request. 302 * Request.
302 * 10-28-09 02.00.03 Changed the type of SGL in MPI2_SATA_PASSTHROUGH_REQUEST 303 * 10-28-09 02.00.03 Changed the type of SGL in MPI2_SATA_PASSTHROUGH_REQUEST
303 * to MPI2_SGE_IO_UNION since it supports chained SGLs. 304 * to MPI2_SGE_IO_UNION since it supports chained SGLs.
305 * 05-12-10 02.00.04 Modified some comments.
304 * -------------------------------------------------------------------------- 306 * --------------------------------------------------------------------------
305 307
306mpi2_targ.h 308mpi2_targ.h
@@ -324,6 +326,7 @@ mpi2_tool.h
324 * and reply messages. 326 * and reply messages.
325 * Added MPI2_DIAG_BUF_TYPE_EXTENDED. 327 * Added MPI2_DIAG_BUF_TYPE_EXTENDED.
326 * Incremented MPI2_DIAG_BUF_TYPE_COUNT. 328 * Incremented MPI2_DIAG_BUF_TYPE_COUNT.
329 * 05-12-10 02.00.05 Added Diagnostic Data Upload tool.
327 * -------------------------------------------------------------------------- 330 * --------------------------------------------------------------------------
328 331
329mpi2_type.h 332mpi2_type.h
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_init.h b/drivers/scsi/mpt2sas/mpi/mpi2_init.h
index c4c99dfcb820..20e6b8869341 100644
--- a/drivers/scsi/mpt2sas/mpi/mpi2_init.h
+++ b/drivers/scsi/mpt2sas/mpi/mpi2_init.h
@@ -6,7 +6,7 @@
6 * Title: MPI SCSI initiator mode messages and structures 6 * Title: MPI SCSI initiator mode messages and structures
7 * Creation Date: June 23, 2006 7 * Creation Date: June 23, 2006
8 * 8 *
9 * mpi2_init.h Version: 02.00.09 9 * mpi2_init.h Version: 02.00.10
10 * 10 *
11 * Version History 11 * Version History
12 * --------------- 12 * ---------------
@@ -32,6 +32,7 @@
32 * Added ResponseInfo field to MPI2_SCSI_TASK_MANAGE_REPLY. 32 * Added ResponseInfo field to MPI2_SCSI_TASK_MANAGE_REPLY.
33 * Added MPI2_SCSITASKMGMT_RSP_TM_OVERLAPPED_TAG define. 33 * Added MPI2_SCSITASKMGMT_RSP_TM_OVERLAPPED_TAG define.
34 * 02-10-10 02.00.09 Removed unused structure that had "#if 0" around it. 34 * 02-10-10 02.00.09 Removed unused structure that had "#if 0" around it.
35 * 05-12-10 02.00.10 Added optional vendor-unique region to SCSI IO Request.
35 * -------------------------------------------------------------------------- 36 * --------------------------------------------------------------------------
36 */ 37 */
37 38
@@ -98,7 +99,13 @@ typedef struct _MPI2_SCSI_IO_REQUEST
98 U8 LUN[8]; /* 0x34 */ 99 U8 LUN[8]; /* 0x34 */
99 U32 Control; /* 0x3C */ 100 U32 Control; /* 0x3C */
100 MPI2_SCSI_IO_CDB_UNION CDB; /* 0x40 */ 101 MPI2_SCSI_IO_CDB_UNION CDB; /* 0x40 */
102
103#ifdef MPI2_SCSI_IO_VENDOR_UNIQUE_REGION /* typically this is left undefined */
104 MPI2_SCSI_IO_VENDOR_UNIQUE VendorRegion;
105#endif
106
101 MPI2_SGE_IO_UNION SGL; /* 0x60 */ 107 MPI2_SGE_IO_UNION SGL; /* 0x60 */
108
102} MPI2_SCSI_IO_REQUEST, MPI2_POINTER PTR_MPI2_SCSI_IO_REQUEST, 109} MPI2_SCSI_IO_REQUEST, MPI2_POINTER PTR_MPI2_SCSI_IO_REQUEST,
103 Mpi2SCSIIORequest_t, MPI2_POINTER pMpi2SCSIIORequest_t; 110 Mpi2SCSIIORequest_t, MPI2_POINTER pMpi2SCSIIORequest_t;
104 111
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h b/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h
index 495bedc4d1f7..761cbdb8a033 100644
--- a/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h
+++ b/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h
@@ -6,7 +6,7 @@
6 * Title: MPI IOC, Port, Event, FW Download, and FW Upload messages 6 * Title: MPI IOC, Port, Event, FW Download, and FW Upload messages
7 * Creation Date: October 11, 2006 7 * Creation Date: October 11, 2006
8 * 8 *
9 * mpi2_ioc.h Version: 02.00.14 9 * mpi2_ioc.h Version: 02.00.15
10 * 10 *
11 * Version History 11 * Version History
12 * --------------- 12 * ---------------
@@ -101,6 +101,8 @@
101 * 02-10-10 02.00.14 Added SAS Quiesce Event structure and defines. 101 * 02-10-10 02.00.14 Added SAS Quiesce Event structure and defines.
102 * Added PowerManagementControl Request structures and 102 * Added PowerManagementControl Request structures and
103 * defines. 103 * defines.
104 * 05-12-10 02.00.15 Marked Task Set Full Event as obsolete.
105 * Added MPI2_EVENT_SAS_TOPO_LR_UNSUPPORTED_PHY define.
104 * -------------------------------------------------------------------------- 106 * --------------------------------------------------------------------------
105 */ 107 */
106 108
@@ -456,7 +458,7 @@ typedef struct _MPI2_EVENT_NOTIFICATION_REPLY
456#define MPI2_EVENT_STATE_CHANGE (0x0002) 458#define MPI2_EVENT_STATE_CHANGE (0x0002)
457#define MPI2_EVENT_HARD_RESET_RECEIVED (0x0005) 459#define MPI2_EVENT_HARD_RESET_RECEIVED (0x0005)
458#define MPI2_EVENT_EVENT_CHANGE (0x000A) 460#define MPI2_EVENT_EVENT_CHANGE (0x000A)
459#define MPI2_EVENT_TASK_SET_FULL (0x000E) 461#define MPI2_EVENT_TASK_SET_FULL (0x000E) /* obsolete */
460#define MPI2_EVENT_SAS_DEVICE_STATUS_CHANGE (0x000F) 462#define MPI2_EVENT_SAS_DEVICE_STATUS_CHANGE (0x000F)
461#define MPI2_EVENT_IR_OPERATION_STATUS (0x0014) 463#define MPI2_EVENT_IR_OPERATION_STATUS (0x0014)
462#define MPI2_EVENT_SAS_DISCOVERY (0x0016) 464#define MPI2_EVENT_SAS_DISCOVERY (0x0016)
@@ -517,6 +519,7 @@ typedef struct _MPI2_EVENT_DATA_HARD_RESET_RECEIVED
517 MPI2_POINTER pMpi2EventDataHardResetReceived_t; 519 MPI2_POINTER pMpi2EventDataHardResetReceived_t;
518 520
519/* Task Set Full Event data */ 521/* Task Set Full Event data */
522/* this event is obsolete */
520 523
521typedef struct _MPI2_EVENT_DATA_TASK_SET_FULL 524typedef struct _MPI2_EVENT_DATA_TASK_SET_FULL
522{ 525{
@@ -831,6 +834,7 @@ typedef struct _MPI2_EVENT_DATA_SAS_TOPOLOGY_CHANGE_LIST
831#define MPI2_EVENT_SAS_TOPO_LR_SATA_OOB_COMPLETE (0x03) 834#define MPI2_EVENT_SAS_TOPO_LR_SATA_OOB_COMPLETE (0x03)
832#define MPI2_EVENT_SAS_TOPO_LR_PORT_SELECTOR (0x04) 835#define MPI2_EVENT_SAS_TOPO_LR_PORT_SELECTOR (0x04)
833#define MPI2_EVENT_SAS_TOPO_LR_SMP_RESET_IN_PROGRESS (0x05) 836#define MPI2_EVENT_SAS_TOPO_LR_SMP_RESET_IN_PROGRESS (0x05)
837#define MPI2_EVENT_SAS_TOPO_LR_UNSUPPORTED_PHY (0x06)
834#define MPI2_EVENT_SAS_TOPO_LR_RATE_1_5 (0x08) 838#define MPI2_EVENT_SAS_TOPO_LR_RATE_1_5 (0x08)
835#define MPI2_EVENT_SAS_TOPO_LR_RATE_3_0 (0x09) 839#define MPI2_EVENT_SAS_TOPO_LR_RATE_3_0 (0x09)
836#define MPI2_EVENT_SAS_TOPO_LR_RATE_6_0 (0x0A) 840#define MPI2_EVENT_SAS_TOPO_LR_RATE_6_0 (0x0A)
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_raid.h b/drivers/scsi/mpt2sas/mpi/mpi2_raid.h
index 5160c33d2a00..bd61a7b60a2b 100644
--- a/drivers/scsi/mpt2sas/mpi/mpi2_raid.h
+++ b/drivers/scsi/mpt2sas/mpi/mpi2_raid.h
@@ -1,12 +1,12 @@
1/* 1/*
2 * Copyright (c) 2000-2008 LSI Corporation. 2 * Copyright (c) 2000-2010 LSI Corporation.
3 * 3 *
4 * 4 *
5 * Name: mpi2_raid.h 5 * Name: mpi2_raid.h
6 * Title: MPI Integrated RAID messages and structures 6 * Title: MPI Integrated RAID messages and structures
7 * Creation Date: April 26, 2007 7 * Creation Date: April 26, 2007
8 * 8 *
9 * mpi2_raid.h Version: 02.00.04 9 * mpi2_raid.h Version: 02.00.05
10 * 10 *
11 * Version History 11 * Version History
12 * --------------- 12 * ---------------
@@ -22,6 +22,7 @@
22 * can be sized by the build environment. 22 * can be sized by the build environment.
23 * 07-30-09 02.00.04 Added proper define for the Use Default Settings bit of 23 * 07-30-09 02.00.04 Added proper define for the Use Default Settings bit of
24 * VolumeCreationFlags and marked the old one as obsolete. 24 * VolumeCreationFlags and marked the old one as obsolete.
25 * 05-12-10 02.00.05 Added MPI2_RAID_VOL_FLAGS_OP_MDC define.
25 * -------------------------------------------------------------------------- 26 * --------------------------------------------------------------------------
26 */ 27 */
27 28
@@ -260,6 +261,7 @@ typedef struct _MPI2_RAID_VOL_INDICATOR
260#define MPI2_RAID_VOL_FLAGS_OP_ONLINE_CAP_EXPANSION (0x00000001) 261#define MPI2_RAID_VOL_FLAGS_OP_ONLINE_CAP_EXPANSION (0x00000001)
261#define MPI2_RAID_VOL_FLAGS_OP_CONSISTENCY_CHECK (0x00000002) 262#define MPI2_RAID_VOL_FLAGS_OP_CONSISTENCY_CHECK (0x00000002)
262#define MPI2_RAID_VOL_FLAGS_OP_RESYNC (0x00000003) 263#define MPI2_RAID_VOL_FLAGS_OP_RESYNC (0x00000003)
264#define MPI2_RAID_VOL_FLAGS_OP_MDC (0x00000004)
263 265
264 266
265/* RAID Action Reply ActionData union */ 267/* RAID Action Reply ActionData union */
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_sas.h b/drivers/scsi/mpt2sas/mpi/mpi2_sas.h
index 2d8aeed51392..608f6d6e6fca 100644
--- a/drivers/scsi/mpt2sas/mpi/mpi2_sas.h
+++ b/drivers/scsi/mpt2sas/mpi/mpi2_sas.h
@@ -1,12 +1,12 @@
1/* 1/*
2 * Copyright (c) 2000-2007 LSI Corporation. 2 * Copyright (c) 2000-2010 LSI Corporation.
3 * 3 *
4 * 4 *
5 * Name: mpi2_sas.h 5 * Name: mpi2_sas.h
6 * Title: MPI Serial Attached SCSI structures and definitions 6 * Title: MPI Serial Attached SCSI structures and definitions
7 * Creation Date: February 9, 2007 7 * Creation Date: February 9, 2007
8 * 8 *
9 * mpi2.h Version: 02.00.03 9 * mpi2_sas.h Version: 02.00.04
10 * 10 *
11 * Version History 11 * Version History
12 * --------------- 12 * ---------------
@@ -20,6 +20,7 @@
20 * Request. 20 * Request.
21 * 10-28-09 02.00.03 Changed the type of SGL in MPI2_SATA_PASSTHROUGH_REQUEST 21 * 10-28-09 02.00.03 Changed the type of SGL in MPI2_SATA_PASSTHROUGH_REQUEST
22 * to MPI2_SGE_IO_UNION since it supports chained SGLs. 22 * to MPI2_SGE_IO_UNION since it supports chained SGLs.
23 * 05-12-10 02.00.04 Modified some comments.
23 * -------------------------------------------------------------------------- 24 * --------------------------------------------------------------------------
24 */ 25 */
25 26
@@ -110,7 +111,7 @@ typedef struct _MPI2_SMP_PASSTHROUGH_REQUEST
110/* values for PassthroughFlags field */ 111/* values for PassthroughFlags field */
111#define MPI2_SMP_PT_REQ_PT_FLAGS_IMMEDIATE (0x80) 112#define MPI2_SMP_PT_REQ_PT_FLAGS_IMMEDIATE (0x80)
112 113
113/* values for SGLFlags field are in the SGL section of mpi2.h */ 114/* use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */
114 115
115 116
116/* SMP Passthrough Reply Message */ 117/* SMP Passthrough Reply Message */
@@ -174,7 +175,7 @@ typedef struct _MPI2_SATA_PASSTHROUGH_REQUEST
174#define MPI2_SATA_PT_REQ_PT_FLAGS_WRITE (0x0002) 175#define MPI2_SATA_PT_REQ_PT_FLAGS_WRITE (0x0002)
175#define MPI2_SATA_PT_REQ_PT_FLAGS_READ (0x0001) 176#define MPI2_SATA_PT_REQ_PT_FLAGS_READ (0x0001)
176 177
177/* values for SGLFlags field are in the SGL section of mpi2.h */ 178/* use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */
178 179
179 180
180/* SATA Passthrough Reply Message */ 181/* SATA Passthrough Reply Message */
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_tool.h b/drivers/scsi/mpt2sas/mpi/mpi2_tool.h
index 686b09b81219..5c6e3a67bb94 100644
--- a/drivers/scsi/mpt2sas/mpi/mpi2_tool.h
+++ b/drivers/scsi/mpt2sas/mpi/mpi2_tool.h
@@ -6,7 +6,7 @@
6 * Title: MPI diagnostic tool structures and definitions 6 * Title: MPI diagnostic tool structures and definitions
7 * Creation Date: March 26, 2007 7 * Creation Date: March 26, 2007
8 * 8 *
9 * mpi2_tool.h Version: 02.00.04 9 * mpi2_tool.h Version: 02.00.05
10 * 10 *
11 * Version History 11 * Version History
12 * --------------- 12 * ---------------
@@ -22,6 +22,7 @@
22 * and reply messages. 22 * and reply messages.
23 * Added MPI2_DIAG_BUF_TYPE_EXTENDED. 23 * Added MPI2_DIAG_BUF_TYPE_EXTENDED.
24 * Incremented MPI2_DIAG_BUF_TYPE_COUNT. 24 * Incremented MPI2_DIAG_BUF_TYPE_COUNT.
25 * 05-12-10 02.00.05 Added Diagnostic Data Upload tool.
25 * -------------------------------------------------------------------------- 26 * --------------------------------------------------------------------------
26 */ 27 */
27 28
@@ -37,6 +38,7 @@
37/* defines for the Tools */ 38/* defines for the Tools */
38#define MPI2_TOOLBOX_CLEAN_TOOL (0x00) 39#define MPI2_TOOLBOX_CLEAN_TOOL (0x00)
39#define MPI2_TOOLBOX_MEMORY_MOVE_TOOL (0x01) 40#define MPI2_TOOLBOX_MEMORY_MOVE_TOOL (0x01)
41#define MPI2_TOOLBOX_DIAG_DATA_UPLOAD_TOOL (0x02)
40#define MPI2_TOOLBOX_ISTWI_READ_WRITE_TOOL (0x03) 42#define MPI2_TOOLBOX_ISTWI_READ_WRITE_TOOL (0x03)
41#define MPI2_TOOLBOX_BEACON_TOOL (0x05) 43#define MPI2_TOOLBOX_BEACON_TOOL (0x05)
42#define MPI2_TOOLBOX_DIAGNOSTIC_CLI_TOOL (0x06) 44#define MPI2_TOOLBOX_DIAGNOSTIC_CLI_TOOL (0x06)
@@ -102,8 +104,7 @@ typedef struct _MPI2_TOOLBOX_CLEAN_REQUEST
102* Toolbox Memory Move request 104* Toolbox Memory Move request
103****************************************************************************/ 105****************************************************************************/
104 106
105typedef struct _MPI2_TOOLBOX_MEM_MOVE_REQUEST 107typedef struct _MPI2_TOOLBOX_MEM_MOVE_REQUEST {
106{
107 U8 Tool; /* 0x00 */ 108 U8 Tool; /* 0x00 */
108 U8 Reserved1; /* 0x01 */ 109 U8 Reserved1; /* 0x01 */
109 U8 ChainOffset; /* 0x02 */ 110 U8 ChainOffset; /* 0x02 */
@@ -120,6 +121,44 @@ typedef struct _MPI2_TOOLBOX_MEM_MOVE_REQUEST
120 121
121 122
122/**************************************************************************** 123/****************************************************************************
124* Toolbox Diagnostic Data Upload request
125****************************************************************************/
126
127typedef struct _MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST {
128 U8 Tool; /* 0x00 */
129 U8 Reserved1; /* 0x01 */
130 U8 ChainOffset; /* 0x02 */
131 U8 Function; /* 0x03 */
132 U16 Reserved2; /* 0x04 */
133 U8 Reserved3; /* 0x06 */
134 U8 MsgFlags; /* 0x07 */
135 U8 VP_ID; /* 0x08 */
136 U8 VF_ID; /* 0x09 */
137 U16 Reserved4; /* 0x0A */
138 U8 SGLFlags; /* 0x0C */
139 U8 Reserved5; /* 0x0D */
140 U16 Reserved6; /* 0x0E */
141 U32 Flags; /* 0x10 */
142 U32 DataLength; /* 0x14 */
143 MPI2_SGE_SIMPLE_UNION SGL; /* 0x18 */
144} MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST,
145MPI2_POINTER PTR_MPI2_TOOLBOX_DIAG_DATA_UPLOAD_REQUEST,
146Mpi2ToolboxDiagDataUploadRequest_t,
147MPI2_POINTER pMpi2ToolboxDiagDataUploadRequest_t;
148
149/* use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */
150
151
152typedef struct _MPI2_DIAG_DATA_UPLOAD_HEADER {
153 U32 DiagDataLength; /* 00h */
154 U8 FormatCode; /* 04h */
155 U8 Reserved1; /* 05h */
156 U16 Reserved2; /* 06h */
157} MPI2_DIAG_DATA_UPLOAD_HEADER, MPI2_POINTER PTR_MPI2_DIAG_DATA_UPLOAD_HEADER,
158Mpi2DiagDataUploadHeader_t, MPI2_POINTER pMpi2DiagDataUploadHeader_t;
159
160
161/****************************************************************************
123* Toolbox ISTWI Read Write Tool 162* Toolbox ISTWI Read Write Tool
124****************************************************************************/ 163****************************************************************************/
125 164
@@ -162,7 +201,7 @@ typedef struct _MPI2_TOOLBOX_ISTWI_READ_WRITE_REQUEST {
162#define MPI2_TOOL_ISTWI_ACTION_RELEASE_BUS (0x11) 201#define MPI2_TOOL_ISTWI_ACTION_RELEASE_BUS (0x11)
163#define MPI2_TOOL_ISTWI_ACTION_RESET (0x12) 202#define MPI2_TOOL_ISTWI_ACTION_RESET (0x12)
164 203
165/* values for SGLFlags field are in the SGL section of mpi2.h */ 204/* use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */
166 205
167 206
168/* Toolbox ISTWI Read Write Tool reply message */ 207/* Toolbox ISTWI Read Write Tool reply message */
@@ -248,7 +287,7 @@ typedef struct _MPI2_TOOLBOX_DIAGNOSTIC_CLI_REQUEST {
248 Mpi2ToolboxDiagnosticCliRequest_t, 287 Mpi2ToolboxDiagnosticCliRequest_t,
249 MPI2_POINTER pMpi2ToolboxDiagnosticCliRequest_t; 288 MPI2_POINTER pMpi2ToolboxDiagnosticCliRequest_t;
250 289
251/* values for SGLFlags field are in the SGL section of mpi2.h */ 290/* use MPI2_SGLFLAGS_ defines from mpi2.h for the SGLFlags field */
252 291
253 292
254/* Toolbox Diagnostic CLI Tool reply message */ 293/* Toolbox Diagnostic CLI Tool reply message */