aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKashyap, Desai <kashyap.desai@lsi.com>2010-06-17 04:07:59 -0400
committerJames Bottomley <James.Bottomley@suse.de>2010-07-27 13:02:13 -0400
commit203d65b16cfef448dbfb79f66b672be4511fc6a9 (patch)
treeb0f714f4f6ff3e4a7fde95c5c20affa9faed4e52
parentd32a8c15e1116e87f0105356eca1afb99842ab49 (diff)
[SCSI] mpt2sas: MPI header version N is updated.
Updating MPI header version N. Removed mpi_history.txt. Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2.h17
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h193
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_init.h17
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_ioc.h119
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_scsih.c7
5 files changed, 308 insertions, 45 deletions
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2.h b/drivers/scsi/mpt2sas/mpi/mpi2.h
index dada0a13223f..4b1c2f0350f9 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.14 11 * mpi2.h Version: 02.00.15
12 * 12 *
13 * Version History 13 * Version History
14 * --------------- 14 * ---------------
@@ -57,6 +57,10 @@
57 * Added MSI-x index mask and shift for Reply Post Host 57 * Added MSI-x index mask and shift for Reply Post Host
58 * Index register. 58 * Index register.
59 * Added function code for Host Based Discovery Action. 59 * Added function code for Host Based Discovery Action.
60 * 02-10-10 02.00.15 Bumped MPI2_HEADER_VERSION_UNIT.
61 * Added define for MPI2_FUNCTION_PWR_MGMT_CONTROL.
62 * Added defines for product-specific range of message
63 * function codes, 0xF0 to 0xFF.
60 * -------------------------------------------------------------------------- 64 * --------------------------------------------------------------------------
61 */ 65 */
62 66
@@ -82,7 +86,7 @@
82#define MPI2_VERSION_02_00 (0x0200) 86#define MPI2_VERSION_02_00 (0x0200)
83 87
84/* versioning for this MPI header set */ 88/* versioning for this MPI header set */
85#define MPI2_HEADER_VERSION_UNIT (0x0E) 89#define MPI2_HEADER_VERSION_UNIT (0x0F)
86#define MPI2_HEADER_VERSION_DEV (0x00) 90#define MPI2_HEADER_VERSION_DEV (0x00)
87#define MPI2_HEADER_VERSION_UNIT_MASK (0xFF00) 91#define MPI2_HEADER_VERSION_UNIT_MASK (0xFF00)
88#define MPI2_HEADER_VERSION_UNIT_SHIFT (8) 92#define MPI2_HEADER_VERSION_UNIT_SHIFT (8)
@@ -473,8 +477,6 @@ typedef union _MPI2_REPLY_DESCRIPTORS_UNION
473/***************************************************************************** 477/*****************************************************************************
474* 478*
475* Message Functions 479* Message Functions
476* 0x80 -> 0x8F reserved for private message use per product
477*
478* 480*
479*****************************************************************************/ 481*****************************************************************************/
480 482
@@ -506,6 +508,13 @@ typedef union _MPI2_REPLY_DESCRIPTORS_UNION
506#define MPI2_FUNCTION_RAID_ACCELERATOR (0x2C) /* RAID Accelerator*/ 508#define MPI2_FUNCTION_RAID_ACCELERATOR (0x2C) /* RAID Accelerator*/
507/* Host Based Discovery Action */ 509/* Host Based Discovery Action */
508#define MPI2_FUNCTION_HOST_BASED_DISCOVERY_ACTION (0x2F) 510#define MPI2_FUNCTION_HOST_BASED_DISCOVERY_ACTION (0x2F)
511/* Power Management Control */
512#define MPI2_FUNCTION_PWR_MGMT_CONTROL (0x30)
513/* beginning of product-specific range */
514#define MPI2_FUNCTION_MIN_PRODUCT_SPECIFIC (0xF0)
515/* end of product-specific range */
516#define MPI2_FUNCTION_MAX_PRODUCT_SPECIFIC (0xFF)
517
509 518
510 519
511 520
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h b/drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h
index d4e9d6f8452e..e3728d736d85 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.13 9 * mpi2_cnfg.h Version: 02.00.14
10 * 10 *
11 * Version History 11 * Version History
12 * --------------- 12 * ---------------
@@ -109,6 +109,18 @@
109 * Added Ethernet configuration pages. 109 * Added Ethernet configuration pages.
110 * 10-28-09 02.00.13 Added MPI2_IOUNITPAGE1_ENABLE_HOST_BASED_DISCOVERY. 110 * 10-28-09 02.00.13 Added MPI2_IOUNITPAGE1_ENABLE_HOST_BASED_DISCOVERY.
111 * Added SAS PHY Page 4 structure and defines. 111 * Added SAS PHY Page 4 structure and defines.
112 * 02-10-10 02.00.14 Modified the comments for the configuration page
113 * structures that contain an array of data. The host
114 * should use the "count" field in the page data (e.g. the
115 * NumPhys field) to determine the number of valid elements
116 * in the array.
117 * Added/modified some MPI2_MFGPAGE_DEVID_SAS defines.
118 * Added PowerManagementCapabilities to IO Unit Page 7.
119 * Added PortWidthModGroup field to
120 * MPI2_SAS_IO_UNIT5_PHY_PM_SETTINGS.
121 * Added MPI2_CONFIG_PAGE_SASIOUNIT_6 and related defines.
122 * Added MPI2_CONFIG_PAGE_SASIOUNIT_7 and related defines.
123 * Added MPI2_CONFIG_PAGE_SASIOUNIT_8 and related defines.
112 * -------------------------------------------------------------------------- 124 * --------------------------------------------------------------------------
113 */ 125 */
114 126
@@ -373,8 +385,9 @@ typedef struct _MPI2_CONFIG_REPLY
373#define MPI2_MFGPAGE_DEVID_SAS2208_4 (0x0083) 385#define MPI2_MFGPAGE_DEVID_SAS2208_4 (0x0083)
374#define MPI2_MFGPAGE_DEVID_SAS2208_5 (0x0084) 386#define MPI2_MFGPAGE_DEVID_SAS2208_5 (0x0084)
375#define MPI2_MFGPAGE_DEVID_SAS2208_6 (0x0085) 387#define MPI2_MFGPAGE_DEVID_SAS2208_6 (0x0085)
376#define MPI2_MFGPAGE_DEVID_SAS2208_7 (0x0086) 388#define MPI2_MFGPAGE_DEVID_SAS2308_1 (0x0086)
377#define MPI2_MFGPAGE_DEVID_SAS2208_8 (0x0087) 389#define MPI2_MFGPAGE_DEVID_SAS2308_2 (0x0087)
390#define MPI2_MFGPAGE_DEVID_SAS2308_3 (0x006E)
378 391
379 392
380/* Manufacturing Page 0 */ 393/* Manufacturing Page 0 */
@@ -540,7 +553,7 @@ typedef struct _MPI2_CONFIG_PAGE_MAN_4
540 553
541/* 554/*
542 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to 555 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to
543 * one and check Header.PageLength or NumPhys at runtime. 556 * one and check the value returned for NumPhys at runtime.
544 */ 557 */
545#ifndef MPI2_MAN_PAGE_5_PHY_ENTRIES 558#ifndef MPI2_MAN_PAGE_5_PHY_ENTRIES
546#define MPI2_MAN_PAGE_5_PHY_ENTRIES (1) 559#define MPI2_MAN_PAGE_5_PHY_ENTRIES (1)
@@ -618,7 +631,7 @@ typedef struct _MPI2_MANPAGE7_CONNECTOR_INFO
618 631
619/* 632/*
620 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to 633 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to
621 * one and check NumPhys at runtime. 634 * one and check the value returned for NumPhys at runtime.
622 */ 635 */
623#ifndef MPI2_MANPAGE7_CONNECTOR_INFO_MAX 636#ifndef MPI2_MANPAGE7_CONNECTOR_INFO_MAX
624#define MPI2_MANPAGE7_CONNECTOR_INFO_MAX (1) 637#define MPI2_MANPAGE7_CONNECTOR_INFO_MAX (1)
@@ -731,7 +744,7 @@ typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_1
731 744
732/* 745/*
733 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to 746 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to
734 * one and check Header.PageLength at runtime. 747 * one and check the value returned for GPIOCount at runtime.
735 */ 748 */
736#ifndef MPI2_IO_UNIT_PAGE_3_GPIO_VAL_MAX 749#ifndef MPI2_IO_UNIT_PAGE_3_GPIO_VAL_MAX
737#define MPI2_IO_UNIT_PAGE_3_GPIO_VAL_MAX (1) 750#define MPI2_IO_UNIT_PAGE_3_GPIO_VAL_MAX (1)
@@ -760,7 +773,7 @@ typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_3
760 773
761/* 774/*
762 * Upper layer code (drivers, utilities, etc.) should leave this define set to 775 * Upper layer code (drivers, utilities, etc.) should leave this define set to
763 * one and check Header.PageLength or NumDmaEngines at runtime. 776 * one and check the value returned for NumDmaEngines at runtime.
764 */ 777 */
765#ifndef MPI2_IOUNITPAGE5_DMAENGINE_ENTRIES 778#ifndef MPI2_IOUNITPAGE5_DMAENGINE_ENTRIES
766#define MPI2_IOUNITPAGE5_DMAENGINE_ENTRIES (1) 779#define MPI2_IOUNITPAGE5_DMAENGINE_ENTRIES (1)
@@ -823,7 +836,7 @@ typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_7 {
823 U8 PCIeWidth; /* 0x06 */ 836 U8 PCIeWidth; /* 0x06 */
824 U8 PCIeSpeed; /* 0x07 */ 837 U8 PCIeSpeed; /* 0x07 */
825 U32 ProcessorState; /* 0x08 */ 838 U32 ProcessorState; /* 0x08 */
826 U32 Reserved2; /* 0x0C */ 839 U32 PowerManagementCapabilities; /* 0x0C */
827 U16 IOCTemperature; /* 0x10 */ 840 U16 IOCTemperature; /* 0x10 */
828 U8 IOCTemperatureUnits; /* 0x12 */ 841 U8 IOCTemperatureUnits; /* 0x12 */
829 U8 IOCSpeed; /* 0x13 */ 842 U8 IOCSpeed; /* 0x13 */
@@ -831,7 +844,7 @@ typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_7 {
831} MPI2_CONFIG_PAGE_IO_UNIT_7, MPI2_POINTER PTR_MPI2_CONFIG_PAGE_IO_UNIT_7, 844} MPI2_CONFIG_PAGE_IO_UNIT_7, MPI2_POINTER PTR_MPI2_CONFIG_PAGE_IO_UNIT_7,
832 Mpi2IOUnitPage7_t, MPI2_POINTER pMpi2IOUnitPage7_t; 845 Mpi2IOUnitPage7_t, MPI2_POINTER pMpi2IOUnitPage7_t;
833 846
834#define MPI2_IOUNITPAGE7_PAGEVERSION (0x00) 847#define MPI2_IOUNITPAGE7_PAGEVERSION (0x01)
835 848
836/* defines for IO Unit Page 7 PCIeWidth field */ 849/* defines for IO Unit Page 7 PCIeWidth field */
837#define MPI2_IOUNITPAGE7_PCIE_WIDTH_X1 (0x01) 850#define MPI2_IOUNITPAGE7_PCIE_WIDTH_X1 (0x01)
@@ -852,6 +865,14 @@ typedef struct _MPI2_CONFIG_PAGE_IO_UNIT_7 {
852#define MPI2_IOUNITPAGE7_PSTATE_DISABLED (0x01) 865#define MPI2_IOUNITPAGE7_PSTATE_DISABLED (0x01)
853#define MPI2_IOUNITPAGE7_PSTATE_ENABLED (0x02) 866#define MPI2_IOUNITPAGE7_PSTATE_ENABLED (0x02)
854 867
868/* defines for IO Unit Page 7 PowerManagementCapabilities field */
869#define MPI2_IOUNITPAGE7_PMCAP_12_5_PCT_IOCSPEED (0x00000400)
870#define MPI2_IOUNITPAGE7_PMCAP_25_0_PCT_IOCSPEED (0x00000200)
871#define MPI2_IOUNITPAGE7_PMCAP_50_0_PCT_IOCSPEED (0x00000100)
872#define MPI2_IOUNITPAGE7_PMCAP_PCIE_WIDTH_CHANGE (0x00000008)
873#define MPI2_IOUNITPAGE7_PMCAP_PCIE_SPEED_CHANGE (0x00000004)
874
875
855/* defines for IO Unit Page 7 IOCTemperatureUnits field */ 876/* defines for IO Unit Page 7 IOCTemperatureUnits field */
856#define MPI2_IOUNITPAGE7_IOC_TEMP_NOT_PRESENT (0x00) 877#define MPI2_IOUNITPAGE7_IOC_TEMP_NOT_PRESENT (0x00)
857#define MPI2_IOUNITPAGE7_IOC_TEMP_FAHRENHEIT (0x01) 878#define MPI2_IOUNITPAGE7_IOC_TEMP_FAHRENHEIT (0x01)
@@ -1195,7 +1216,7 @@ typedef struct _MPI2_CONFIG_PAGE_BIOS_3
1195 1216
1196/* 1217/*
1197 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to 1218 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to
1198 * one and check Header.PageLength or NumPhys at runtime. 1219 * one and check the value returned for NumPhys at runtime.
1199 */ 1220 */
1200#ifndef MPI2_BIOS_PAGE_4_PHY_ENTRIES 1221#ifndef MPI2_BIOS_PAGE_4_PHY_ENTRIES
1201#define MPI2_BIOS_PAGE_4_PHY_ENTRIES (1) 1222#define MPI2_BIOS_PAGE_4_PHY_ENTRIES (1)
@@ -1269,7 +1290,7 @@ typedef struct _MPI2_RAIDVOL0_SETTINGS
1269 1290
1270/* 1291/*
1271 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to 1292 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to
1272 * one and check Header.PageLength at runtime. 1293 * one and check the value returned for NumPhysDisks at runtime.
1273 */ 1294 */
1274#ifndef MPI2_RAID_VOL_PAGE_0_PHYSDISK_MAX 1295#ifndef MPI2_RAID_VOL_PAGE_0_PHYSDISK_MAX
1275#define MPI2_RAID_VOL_PAGE_0_PHYSDISK_MAX (1) 1296#define MPI2_RAID_VOL_PAGE_0_PHYSDISK_MAX (1)
@@ -1471,7 +1492,7 @@ typedef struct _MPI2_CONFIG_PAGE_RD_PDISK_0
1471 1492
1472/* 1493/*
1473 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to 1494 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to
1474 * one and check Header.PageLength or NumPhysDiskPaths at runtime. 1495 * one and check the value returned for NumPhysDiskPaths at runtime.
1475 */ 1496 */
1476#ifndef MPI2_RAID_PHYS_DISK1_PATH_MAX 1497#ifndef MPI2_RAID_PHYS_DISK1_PATH_MAX
1477#define MPI2_RAID_PHYS_DISK1_PATH_MAX (1) 1498#define MPI2_RAID_PHYS_DISK1_PATH_MAX (1)
@@ -1633,7 +1654,7 @@ typedef struct _MPI2_SAS_IO_UNIT0_PHY_DATA
1633 1654
1634/* 1655/*
1635 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to 1656 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to
1636 * one and check Header.ExtPageLength or NumPhys at runtime. 1657 * one and check the value returned for NumPhys at runtime.
1637 */ 1658 */
1638#ifndef MPI2_SAS_IOUNIT0_PHY_MAX 1659#ifndef MPI2_SAS_IOUNIT0_PHY_MAX
1639#define MPI2_SAS_IOUNIT0_PHY_MAX (1) 1660#define MPI2_SAS_IOUNIT0_PHY_MAX (1)
@@ -1704,7 +1725,7 @@ typedef struct _MPI2_SAS_IO_UNIT1_PHY_DATA
1704 1725
1705/* 1726/*
1706 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to 1727 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to
1707 * one and check Header.ExtPageLength or NumPhys at runtime. 1728 * one and check the value returned for NumPhys at runtime.
1708 */ 1729 */
1709#ifndef MPI2_SAS_IOUNIT1_PHY_MAX 1730#ifndef MPI2_SAS_IOUNIT1_PHY_MAX
1710#define MPI2_SAS_IOUNIT1_PHY_MAX (1) 1731#define MPI2_SAS_IOUNIT1_PHY_MAX (1)
@@ -1795,7 +1816,7 @@ typedef struct _MPI2_SAS_IOUNIT4_SPINUP_GROUP
1795 1816
1796/* 1817/*
1797 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to 1818 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to
1798 * four and check Header.ExtPageLength or NumPhys at runtime. 1819 * one and check the value returned for NumPhys at runtime.
1799 */ 1820 */
1800#ifndef MPI2_SAS_IOUNIT4_PHY_MAX 1821#ifndef MPI2_SAS_IOUNIT4_PHY_MAX
1801#define MPI2_SAS_IOUNIT4_PHY_MAX (4) 1822#define MPI2_SAS_IOUNIT4_PHY_MAX (4)
@@ -1833,7 +1854,7 @@ typedef struct _MPI2_CONFIG_PAGE_SASIOUNIT_4
1833 1854
1834typedef struct _MPI2_SAS_IO_UNIT5_PHY_PM_SETTINGS { 1855typedef struct _MPI2_SAS_IO_UNIT5_PHY_PM_SETTINGS {
1835 U8 ControlFlags; /* 0x00 */ 1856 U8 ControlFlags; /* 0x00 */
1836 U8 Reserved1; /* 0x01 */ 1857 U8 PortWidthModGroup; /* 0x01 */
1837 U16 InactivityTimerExponent; /* 0x02 */ 1858 U16 InactivityTimerExponent; /* 0x02 */
1838 U8 SATAPartialTimeout; /* 0x04 */ 1859 U8 SATAPartialTimeout; /* 0x04 */
1839 U8 Reserved2; /* 0x05 */ 1860 U8 Reserved2; /* 0x05 */
@@ -1853,6 +1874,9 @@ typedef struct _MPI2_SAS_IO_UNIT5_PHY_PM_SETTINGS {
1853#define MPI2_SASIOUNIT5_CONTROL_SATA_SLUMBER_ENABLE (0x02) 1874#define MPI2_SASIOUNIT5_CONTROL_SATA_SLUMBER_ENABLE (0x02)
1854#define MPI2_SASIOUNIT5_CONTROL_SATA_PARTIAL_ENABLE (0x01) 1875#define MPI2_SASIOUNIT5_CONTROL_SATA_PARTIAL_ENABLE (0x01)
1855 1876
1877/* defines for PortWidthModeGroup field */
1878#define MPI2_SASIOUNIT5_PWMG_DISABLE (0xFF)
1879
1856/* defines for InactivityTimerExponent field */ 1880/* defines for InactivityTimerExponent field */
1857#define MPI2_SASIOUNIT5_ITE_MASK_SAS_SLUMBER (0x7000) 1881#define MPI2_SASIOUNIT5_ITE_MASK_SAS_SLUMBER (0x7000)
1858#define MPI2_SASIOUNIT5_ITE_SHIFT_SAS_SLUMBER (12) 1882#define MPI2_SASIOUNIT5_ITE_SHIFT_SAS_SLUMBER (12)
@@ -1874,7 +1898,7 @@ typedef struct _MPI2_SAS_IO_UNIT5_PHY_PM_SETTINGS {
1874 1898
1875/* 1899/*
1876 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to 1900 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to
1877 * one and check Header.ExtPageLength or NumPhys at runtime. 1901 * one and check the value returned for NumPhys at runtime.
1878 */ 1902 */
1879#ifndef MPI2_SAS_IOUNIT5_PHY_MAX 1903#ifndef MPI2_SAS_IOUNIT5_PHY_MAX
1880#define MPI2_SAS_IOUNIT5_PHY_MAX (1) 1904#define MPI2_SAS_IOUNIT5_PHY_MAX (1)
@@ -1892,7 +1916,132 @@ typedef struct _MPI2_CONFIG_PAGE_SASIOUNIT_5 {
1892 MPI2_POINTER PTR_MPI2_CONFIG_PAGE_SASIOUNIT_5, 1916 MPI2_POINTER PTR_MPI2_CONFIG_PAGE_SASIOUNIT_5,
1893 Mpi2SasIOUnitPage5_t, MPI2_POINTER pMpi2SasIOUnitPage5_t; 1917 Mpi2SasIOUnitPage5_t, MPI2_POINTER pMpi2SasIOUnitPage5_t;
1894 1918
1895#define MPI2_SASIOUNITPAGE5_PAGEVERSION (0x00) 1919#define MPI2_SASIOUNITPAGE5_PAGEVERSION (0x01)
1920
1921
1922/* SAS IO Unit Page 6 */
1923
1924typedef struct _MPI2_SAS_IO_UNIT6_PORT_WIDTH_MOD_GROUP_STATUS {
1925 U8 CurrentStatus; /* 0x00 */
1926 U8 CurrentModulation; /* 0x01 */
1927 U8 CurrentUtilization; /* 0x02 */
1928 U8 Reserved1; /* 0x03 */
1929 U32 Reserved2; /* 0x04 */
1930} MPI2_SAS_IO_UNIT6_PORT_WIDTH_MOD_GROUP_STATUS,
1931 MPI2_POINTER PTR_MPI2_SAS_IO_UNIT6_PORT_WIDTH_MOD_GROUP_STATUS,
1932 Mpi2SasIOUnit6PortWidthModGroupStatus_t,
1933 MPI2_POINTER pMpi2SasIOUnit6PortWidthModGroupStatus_t;
1934
1935/* defines for CurrentStatus field */
1936#define MPI2_SASIOUNIT6_STATUS_UNAVAILABLE (0x00)
1937#define MPI2_SASIOUNIT6_STATUS_UNCONFIGURED (0x01)
1938#define MPI2_SASIOUNIT6_STATUS_INVALID_CONFIG (0x02)
1939#define MPI2_SASIOUNIT6_STATUS_LINK_DOWN (0x03)
1940#define MPI2_SASIOUNIT6_STATUS_OBSERVATION_ONLY (0x04)
1941#define MPI2_SASIOUNIT6_STATUS_INACTIVE (0x05)
1942#define MPI2_SASIOUNIT6_STATUS_ACTIVE_IOUNIT (0x06)
1943#define MPI2_SASIOUNIT6_STATUS_ACTIVE_HOST (0x07)
1944
1945/* defines for CurrentModulation field */
1946#define MPI2_SASIOUNIT6_MODULATION_25_PERCENT (0x00)
1947#define MPI2_SASIOUNIT6_MODULATION_50_PERCENT (0x01)
1948#define MPI2_SASIOUNIT6_MODULATION_75_PERCENT (0x02)
1949#define MPI2_SASIOUNIT6_MODULATION_100_PERCENT (0x03)
1950
1951/*
1952 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to
1953 * one and check the value returned for NumGroups at runtime.
1954 */
1955#ifndef MPI2_SAS_IOUNIT6_GROUP_MAX
1956#define MPI2_SAS_IOUNIT6_GROUP_MAX (1)
1957#endif
1958
1959typedef struct _MPI2_CONFIG_PAGE_SASIOUNIT_6 {
1960 MPI2_CONFIG_EXTENDED_PAGE_HEADER Header; /* 0x00 */
1961 U32 Reserved1; /* 0x08 */
1962 U32 Reserved2; /* 0x0C */
1963 U8 NumGroups; /* 0x10 */
1964 U8 Reserved3; /* 0x11 */
1965 U16 Reserved4; /* 0x12 */
1966 MPI2_SAS_IO_UNIT6_PORT_WIDTH_MOD_GROUP_STATUS
1967 PortWidthModulationGroupStatus[MPI2_SAS_IOUNIT6_GROUP_MAX]; /* 0x14 */
1968} MPI2_CONFIG_PAGE_SASIOUNIT_6,
1969 MPI2_POINTER PTR_MPI2_CONFIG_PAGE_SASIOUNIT_6,
1970 Mpi2SasIOUnitPage6_t, MPI2_POINTER pMpi2SasIOUnitPage6_t;
1971
1972#define MPI2_SASIOUNITPAGE6_PAGEVERSION (0x00)
1973
1974
1975/* SAS IO Unit Page 7 */
1976
1977typedef struct _MPI2_SAS_IO_UNIT7_PORT_WIDTH_MOD_GROUP_SETTINGS {
1978 U8 Flags; /* 0x00 */
1979 U8 Reserved1; /* 0x01 */
1980 U16 Reserved2; /* 0x02 */
1981 U8 Threshold75Pct; /* 0x04 */
1982 U8 Threshold50Pct; /* 0x05 */
1983 U8 Threshold25Pct; /* 0x06 */
1984 U8 Reserved3; /* 0x07 */
1985} MPI2_SAS_IO_UNIT7_PORT_WIDTH_MOD_GROUP_SETTINGS,
1986 MPI2_POINTER PTR_MPI2_SAS_IO_UNIT7_PORT_WIDTH_MOD_GROUP_SETTINGS,
1987 Mpi2SasIOUnit7PortWidthModGroupSettings_t,
1988 MPI2_POINTER pMpi2SasIOUnit7PortWidthModGroupSettings_t;
1989
1990/* defines for Flags field */
1991#define MPI2_SASIOUNIT7_FLAGS_ENABLE_PORT_WIDTH_MODULATION (0x01)
1992
1993
1994/*
1995 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to
1996 * one and check the value returned for NumGroups at runtime.
1997 */
1998#ifndef MPI2_SAS_IOUNIT7_GROUP_MAX
1999#define MPI2_SAS_IOUNIT7_GROUP_MAX (1)
2000#endif
2001
2002typedef struct _MPI2_CONFIG_PAGE_SASIOUNIT_7 {
2003 MPI2_CONFIG_EXTENDED_PAGE_HEADER Header; /* 0x00 */
2004 U8 SamplingInterval; /* 0x08 */
2005 U8 WindowLength; /* 0x09 */
2006 U16 Reserved1; /* 0x0A */
2007 U32 Reserved2; /* 0x0C */
2008 U32 Reserved3; /* 0x10 */
2009 U8 NumGroups; /* 0x14 */
2010 U8 Reserved4; /* 0x15 */
2011 U16 Reserved5; /* 0x16 */
2012 MPI2_SAS_IO_UNIT7_PORT_WIDTH_MOD_GROUP_SETTINGS
2013 PortWidthModulationGroupSettings[MPI2_SAS_IOUNIT7_GROUP_MAX]; /* 0x18 */
2014} MPI2_CONFIG_PAGE_SASIOUNIT_7,
2015 MPI2_POINTER PTR_MPI2_CONFIG_PAGE_SASIOUNIT_7,
2016 Mpi2SasIOUnitPage7_t, MPI2_POINTER pMpi2SasIOUnitPage7_t;
2017
2018#define MPI2_SASIOUNITPAGE7_PAGEVERSION (0x00)
2019
2020
2021/* SAS IO Unit Page 8 */
2022
2023typedef struct _MPI2_CONFIG_PAGE_SASIOUNIT_8 {
2024 MPI2_CONFIG_EXTENDED_PAGE_HEADER Header; /* 0x00 */
2025 U32 Reserved1; /* 0x08 */
2026 U32 PowerManagementCapabilities;/* 0x0C */
2027 U32 Reserved2; /* 0x10 */
2028} MPI2_CONFIG_PAGE_SASIOUNIT_8,
2029 MPI2_POINTER PTR_MPI2_CONFIG_PAGE_SASIOUNIT_8,
2030 Mpi2SasIOUnitPage8_t, MPI2_POINTER pMpi2SasIOUnitPage8_t;
2031
2032#define MPI2_SASIOUNITPAGE8_PAGEVERSION (0x00)
2033
2034/* defines for PowerManagementCapabilities field */
2035#define MPI2_SASIOUNIT8_PM_HOST_PORT_WIDTH_MOD (0x000001000)
2036#define MPI2_SASIOUNIT8_PM_HOST_SAS_SLUMBER_MODE (0x000000800)
2037#define MPI2_SASIOUNIT8_PM_HOST_SAS_PARTIAL_MODE (0x000000400)
2038#define MPI2_SASIOUNIT8_PM_HOST_SATA_SLUMBER_MODE (0x000000200)
2039#define MPI2_SASIOUNIT8_PM_HOST_SATA_PARTIAL_MODE (0x000000100)
2040#define MPI2_SASIOUNIT8_PM_IOUNIT_PORT_WIDTH_MOD (0x000000010)
2041#define MPI2_SASIOUNIT8_PM_IOUNIT_SAS_SLUMBER_MODE (0x000000008)
2042#define MPI2_SASIOUNIT8_PM_IOUNIT_SAS_PARTIAL_MODE (0x000000004)
2043#define MPI2_SASIOUNIT8_PM_IOUNIT_SATA_SLUMBER_MODE (0x000000002)
2044#define MPI2_SASIOUNIT8_PM_IOUNIT_SATA_PARTIAL_MODE (0x000000001)
1896 2045
1897 2046
1898 2047
@@ -2182,7 +2331,7 @@ typedef struct _MPI2_SASPHY2_PHY_EVENT {
2182 2331
2183/* 2332/*
2184 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to 2333 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to
2185 * one and check Header.ExtPageLength or NumPhyEvents at runtime. 2334 * one and check the value returned for NumPhyEvents at runtime.
2186 */ 2335 */
2187#ifndef MPI2_SASPHY2_PHY_EVENT_MAX 2336#ifndef MPI2_SASPHY2_PHY_EVENT_MAX
2188#define MPI2_SASPHY2_PHY_EVENT_MAX (1) 2337#define MPI2_SASPHY2_PHY_EVENT_MAX (1)
@@ -2274,7 +2423,7 @@ typedef struct _MPI2_SASPHY3_PHY_EVENT_CONFIG {
2274 2423
2275/* 2424/*
2276 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to 2425 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to
2277 * one and check Header.ExtPageLength or NumPhyEvents at runtime. 2426 * one and check the value returned for NumPhyEvents at runtime.
2278 */ 2427 */
2279#ifndef MPI2_SASPHY3_PHY_EVENT_MAX 2428#ifndef MPI2_SASPHY3_PHY_EVENT_MAX
2280#define MPI2_SASPHY3_PHY_EVENT_MAX (1) 2429#define MPI2_SASPHY3_PHY_EVENT_MAX (1)
@@ -2385,7 +2534,7 @@ typedef struct _MPI2_CONFIG_PAGE_SAS_ENCLOSURE_0
2385 2534
2386/* 2535/*
2387 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to 2536 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to
2388 * one and check Header.ExtPageLength or NumPhys at runtime. 2537 * one and check the value returned for NumLogEntries at runtime.
2389 */ 2538 */
2390#ifndef MPI2_LOG_0_NUM_LOG_ENTRIES 2539#ifndef MPI2_LOG_0_NUM_LOG_ENTRIES
2391#define MPI2_LOG_0_NUM_LOG_ENTRIES (1) 2540#define MPI2_LOG_0_NUM_LOG_ENTRIES (1)
@@ -2435,7 +2584,7 @@ typedef struct _MPI2_CONFIG_PAGE_LOG_0
2435 2584
2436/* 2585/*
2437 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to 2586 * Host code (drivers, BIOS, utilities, etc.) should leave this define set to
2438 * one and check Header.ExtPageLength or NumPhys at runtime. 2587 * one and check the value returned for NumElements at runtime.
2439 */ 2588 */
2440#ifndef MPI2_RAIDCONFIG0_MAX_ELEMENTS 2589#ifndef MPI2_RAIDCONFIG0_MAX_ELEMENTS
2441#define MPI2_RAIDCONFIG0_MAX_ELEMENTS (1) 2590#define MPI2_RAIDCONFIG0_MAX_ELEMENTS (1)
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_init.h b/drivers/scsi/mpt2sas/mpi/mpi2_init.h
index 220bf65a9216..c4c99dfcb820 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.08 9 * mpi2_init.h Version: 02.00.09
10 * 10 *
11 * Version History 11 * Version History
12 * --------------- 12 * ---------------
@@ -31,6 +31,7 @@
31 * both SCSI IO Error Reply and SCSI Task Management Reply. 31 * both SCSI IO Error Reply and SCSI Task Management Reply.
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 * -------------------------------------------------------------------------- 35 * --------------------------------------------------------------------------
35 */ 36 */
36 37
@@ -57,20 +58,6 @@ typedef struct
57} MPI2_SCSI_IO_CDB_EEDP32, MPI2_POINTER PTR_MPI2_SCSI_IO_CDB_EEDP32, 58} MPI2_SCSI_IO_CDB_EEDP32, MPI2_POINTER PTR_MPI2_SCSI_IO_CDB_EEDP32,
58 Mpi2ScsiIoCdbEedp32_t, MPI2_POINTER pMpi2ScsiIoCdbEedp32_t; 59 Mpi2ScsiIoCdbEedp32_t, MPI2_POINTER pMpi2ScsiIoCdbEedp32_t;
59 60
60/* TBD: I don't think this is needed for MPI2/Gen2 */
61#if 0
62typedef struct
63{
64 U8 CDB[16]; /* 0x00 */
65 U32 DataLength; /* 0x10 */
66 U32 PrimaryReferenceTag; /* 0x14 */
67 U16 PrimaryApplicationTag; /* 0x18 */
68 U16 PrimaryApplicationTagMask; /* 0x1A */
69 U32 TransferLength; /* 0x1C */
70} MPI2_SCSI_IO32_CDB_EEDP16, MPI2_POINTER PTR_MPI2_SCSI_IO32_CDB_EEDP16,
71 Mpi2ScsiIo32CdbEedp16_t, MPI2_POINTER pMpi2ScsiIo32CdbEedp16_t;
72#endif
73
74typedef union 61typedef union
75{ 62{
76 U8 CDB32[32]; 63 U8 CDB32[32];
diff --git a/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h b/drivers/scsi/mpt2sas/mpi/mpi2_ioc.h
index f18f114922ba..495bedc4d1f7 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.13 9 * mpi2_ioc.h Version: 02.00.14
10 * 10 *
11 * Version History 11 * Version History
12 * --------------- 12 * ---------------
@@ -98,6 +98,9 @@
98 * (MPI2_FW_HEADER_PID_). 98 * (MPI2_FW_HEADER_PID_).
99 * Modified values for SAS ProductID Family 99 * Modified values for SAS ProductID Family
100 * (MPI2_FW_HEADER_PID_FAMILY_). 100 * (MPI2_FW_HEADER_PID_FAMILY_).
101 * 02-10-10 02.00.14 Added SAS Quiesce Event structure and defines.
102 * Added PowerManagementControl Request structures and
103 * defines.
101 * -------------------------------------------------------------------------- 104 * --------------------------------------------------------------------------
102 */ 105 */
103 106
@@ -469,6 +472,7 @@ typedef struct _MPI2_EVENT_NOTIFICATION_REPLY
469#define MPI2_EVENT_SAS_PHY_COUNTER (0x0022) 472#define MPI2_EVENT_SAS_PHY_COUNTER (0x0022)
470#define MPI2_EVENT_GPIO_INTERRUPT (0x0023) 473#define MPI2_EVENT_GPIO_INTERRUPT (0x0023)
471#define MPI2_EVENT_HOST_BASED_DISCOVERY_PHY (0x0024) 474#define MPI2_EVENT_HOST_BASED_DISCOVERY_PHY (0x0024)
475#define MPI2_EVENT_SAS_QUIESCE (0x0025)
472 476
473 477
474/* Log Entry Added Event data */ 478/* Log Entry Added Event data */
@@ -895,6 +899,22 @@ typedef struct _MPI2_EVENT_DATA_SAS_PHY_COUNTER {
895 * */ 899 * */
896 900
897 901
902/* SAS Quiesce Event data */
903
904typedef struct _MPI2_EVENT_DATA_SAS_QUIESCE {
905 U8 ReasonCode; /* 0x00 */
906 U8 Reserved1; /* 0x01 */
907 U16 Reserved2; /* 0x02 */
908 U32 Reserved3; /* 0x04 */
909} MPI2_EVENT_DATA_SAS_QUIESCE,
910 MPI2_POINTER PTR_MPI2_EVENT_DATA_SAS_QUIESCE,
911 Mpi2EventDataSasQuiesce_t, MPI2_POINTER pMpi2EventDataSasQuiesce_t;
912
913/* SAS Quiesce Event data ReasonCode values */
914#define MPI2_EVENT_SAS_QUIESCE_RC_STARTED (0x01)
915#define MPI2_EVENT_SAS_QUIESCE_RC_COMPLETED (0x02)
916
917
898/* Host Based Discovery Phy Event data */ 918/* Host Based Discovery Phy Event data */
899 919
900typedef struct _MPI2_EVENT_HBD_PHY_SAS { 920typedef struct _MPI2_EVENT_HBD_PHY_SAS {
@@ -1006,6 +1026,7 @@ typedef struct _MPI2_FW_DOWNLOAD_REQUEST
1006#define MPI2_FW_DOWNLOAD_ITYPE_CONFIG_1 (0x07) 1026#define MPI2_FW_DOWNLOAD_ITYPE_CONFIG_1 (0x07)
1007#define MPI2_FW_DOWNLOAD_ITYPE_CONFIG_2 (0x08) 1027#define MPI2_FW_DOWNLOAD_ITYPE_CONFIG_2 (0x08)
1008#define MPI2_FW_DOWNLOAD_ITYPE_MEGARAID (0x09) 1028#define MPI2_FW_DOWNLOAD_ITYPE_MEGARAID (0x09)
1029#define MPI2_FW_DOWNLOAD_ITYPE_COMPLETE (0x0A)
1009#define MPI2_FW_DOWNLOAD_ITYPE_COMMON_BOOT_BLOCK (0x0B) 1030#define MPI2_FW_DOWNLOAD_ITYPE_COMMON_BOOT_BLOCK (0x0B)
1010 1031
1011/* FWDownload TransactionContext Element */ 1032/* FWDownload TransactionContext Element */
@@ -1183,7 +1204,6 @@ typedef struct _MPI2_FW_IMAGE_HEADER
1183 1204
1184#define MPI2_FW_HEADER_PID_PROD_MASK (0x0F00) 1205#define MPI2_FW_HEADER_PID_PROD_MASK (0x0F00)
1185#define MPI2_FW_HEADER_PID_PROD_A (0x0000) 1206#define MPI2_FW_HEADER_PID_PROD_A (0x0000)
1186#define MPI2_FW_HEADER_PID_PROD_MASK (0x0F00)
1187#define MPI2_FW_HEADER_PID_PROD_TARGET_INITIATOR_SCSI (0x0200) 1207#define MPI2_FW_HEADER_PID_PROD_TARGET_INITIATOR_SCSI (0x0200)
1188#define MPI2_FW_HEADER_PID_PROD_IR_SCSI (0x0700) 1208#define MPI2_FW_HEADER_PID_PROD_IR_SCSI (0x0700)
1189 1209
@@ -1407,5 +1427,100 @@ typedef struct _MPI2_INIT_IMAGE_FOOTER
1407#define MPI2_INIT_IMAGE_RESETVECTOR_OFFSET (0x14) 1427#define MPI2_INIT_IMAGE_RESETVECTOR_OFFSET (0x14)
1408 1428
1409 1429
1430/****************************************************************************
1431* PowerManagementControl message
1432****************************************************************************/
1433
1434/* PowerManagementControl Request message */
1435typedef struct _MPI2_PWR_MGMT_CONTROL_REQUEST {
1436 U8 Feature; /* 0x00 */
1437 U8 Reserved1; /* 0x01 */
1438 U8 ChainOffset; /* 0x02 */
1439 U8 Function; /* 0x03 */
1440 U16 Reserved2; /* 0x04 */
1441 U8 Reserved3; /* 0x06 */
1442 U8 MsgFlags; /* 0x07 */
1443 U8 VP_ID; /* 0x08 */
1444 U8 VF_ID; /* 0x09 */
1445 U16 Reserved4; /* 0x0A */
1446 U8 Parameter1; /* 0x0C */
1447 U8 Parameter2; /* 0x0D */
1448 U8 Parameter3; /* 0x0E */
1449 U8 Parameter4; /* 0x0F */
1450 U32 Reserved5; /* 0x10 */
1451 U32 Reserved6; /* 0x14 */
1452} MPI2_PWR_MGMT_CONTROL_REQUEST, MPI2_POINTER PTR_MPI2_PWR_MGMT_CONTROL_REQUEST,
1453 Mpi2PwrMgmtControlRequest_t, MPI2_POINTER pMpi2PwrMgmtControlRequest_t;
1454
1455/* defines for the Feature field */
1456#define MPI2_PM_CONTROL_FEATURE_DA_PHY_POWER_COND (0x01)
1457#define MPI2_PM_CONTROL_FEATURE_PORT_WIDTH_MODULATION (0x02)
1458#define MPI2_PM_CONTROL_FEATURE_PCIE_LINK (0x03)
1459#define MPI2_PM_CONTROL_FEATURE_IOC_SPEED (0x04)
1460#define MPI2_PM_CONTROL_FEATURE_MIN_PRODUCT_SPECIFIC (0x80)
1461#define MPI2_PM_CONTROL_FEATURE_MAX_PRODUCT_SPECIFIC (0xFF)
1462
1463/* parameter usage for the MPI2_PM_CONTROL_FEATURE_DA_PHY_POWER_COND Feature */
1464/* Parameter1 contains a PHY number */
1465/* Parameter2 indicates power condition action using these defines */
1466#define MPI2_PM_CONTROL_PARAM2_PARTIAL (0x01)
1467#define MPI2_PM_CONTROL_PARAM2_SLUMBER (0x02)
1468#define MPI2_PM_CONTROL_PARAM2_EXIT_PWR_MGMT (0x03)
1469/* Parameter3 and Parameter4 are reserved */
1470
1471/* parameter usage for the MPI2_PM_CONTROL_FEATURE_PORT_WIDTH_MODULATION
1472 * Feature */
1473/* Parameter1 contains SAS port width modulation group number */
1474/* Parameter2 indicates IOC action using these defines */
1475#define MPI2_PM_CONTROL_PARAM2_REQUEST_OWNERSHIP (0x01)
1476#define MPI2_PM_CONTROL_PARAM2_CHANGE_MODULATION (0x02)
1477#define MPI2_PM_CONTROL_PARAM2_RELINQUISH_OWNERSHIP (0x03)
1478/* Parameter3 indicates desired modulation level using these defines */
1479#define MPI2_PM_CONTROL_PARAM3_25_PERCENT (0x00)
1480#define MPI2_PM_CONTROL_PARAM3_50_PERCENT (0x01)
1481#define MPI2_PM_CONTROL_PARAM3_75_PERCENT (0x02)
1482#define MPI2_PM_CONTROL_PARAM3_100_PERCENT (0x03)
1483/* Parameter4 is reserved */
1484
1485/* parameter usage for the MPI2_PM_CONTROL_FEATURE_PCIE_LINK Feature */
1486/* Parameter1 indicates desired PCIe link speed using these defines */
1487#define MPI2_PM_CONTROL_PARAM1_PCIE_2_5_GBPS (0x00)
1488#define MPI2_PM_CONTROL_PARAM1_PCIE_5_0_GBPS (0x01)
1489#define MPI2_PM_CONTROL_PARAM1_PCIE_8_0_GBPS (0x02)
1490/* Parameter2 indicates desired PCIe link width using these defines */
1491#define MPI2_PM_CONTROL_PARAM2_WIDTH_X1 (0x01)
1492#define MPI2_PM_CONTROL_PARAM2_WIDTH_X2 (0x02)
1493#define MPI2_PM_CONTROL_PARAM2_WIDTH_X4 (0x04)
1494#define MPI2_PM_CONTROL_PARAM2_WIDTH_X8 (0x08)
1495/* Parameter3 and Parameter4 are reserved */
1496
1497/* parameter usage for the MPI2_PM_CONTROL_FEATURE_IOC_SPEED Feature */
1498/* Parameter1 indicates desired IOC hardware clock speed using these defines */
1499#define MPI2_PM_CONTROL_PARAM1_FULL_IOC_SPEED (0x01)
1500#define MPI2_PM_CONTROL_PARAM1_HALF_IOC_SPEED (0x02)
1501#define MPI2_PM_CONTROL_PARAM1_QUARTER_IOC_SPEED (0x04)
1502#define MPI2_PM_CONTROL_PARAM1_EIGHTH_IOC_SPEED (0x08)
1503/* Parameter2, Parameter3, and Parameter4 are reserved */
1504
1505
1506/* PowerManagementControl Reply message */
1507typedef struct _MPI2_PWR_MGMT_CONTROL_REPLY {
1508 U8 Feature; /* 0x00 */
1509 U8 Reserved1; /* 0x01 */
1510 U8 MsgLength; /* 0x02 */
1511 U8 Function; /* 0x03 */
1512 U16 Reserved2; /* 0x04 */
1513 U8 Reserved3; /* 0x06 */
1514 U8 MsgFlags; /* 0x07 */
1515 U8 VP_ID; /* 0x08 */
1516 U8 VF_ID; /* 0x09 */
1517 U16 Reserved4; /* 0x0A */
1518 U16 Reserved5; /* 0x0C */
1519 U16 IOCStatus; /* 0x0E */
1520 U32 IOCLogInfo; /* 0x10 */
1521} MPI2_PWR_MGMT_CONTROL_REPLY, MPI2_POINTER PTR_MPI2_PWR_MGMT_CONTROL_REPLY,
1522 Mpi2PwrMgmtControlReply_t, MPI2_POINTER pMpi2PwrMgmtControlReply_t;
1523
1524
1410#endif 1525#endif
1411 1526
diff --git a/drivers/scsi/mpt2sas/mpt2sas_scsih.c b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
index 9ce225303938..87c686525f07 100644
--- a/drivers/scsi/mpt2sas/mpt2sas_scsih.c
+++ b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
@@ -223,9 +223,12 @@ static struct pci_device_id scsih_pci_table[] = {
223 PCI_ANY_ID, PCI_ANY_ID }, 223 PCI_ANY_ID, PCI_ANY_ID },
224 { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2208_6, 224 { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2208_6,
225 PCI_ANY_ID, PCI_ANY_ID }, 225 PCI_ANY_ID, PCI_ANY_ID },
226 { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2208_7, 226 /* Mustang ~ 2308 */
227 { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2308_1,
227 PCI_ANY_ID, PCI_ANY_ID }, 228 PCI_ANY_ID, PCI_ANY_ID },
228 { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2208_8, 229 { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2308_2,
230 PCI_ANY_ID, PCI_ANY_ID },
231 { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2308_3,
229 PCI_ANY_ID, PCI_ANY_ID }, 232 PCI_ANY_ID, PCI_ANY_ID },
230 {0} /* Terminating entry */ 233 {0} /* Terminating entry */
231}; 234};