diff options
author | Kashyap, Desai <kashyap.desai@lsi.com> | 2010-06-17 04:07:59 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-07-27 13:02:13 -0400 |
commit | 203d65b16cfef448dbfb79f66b672be4511fc6a9 (patch) | |
tree | b0f714f4f6ff3e4a7fde95c5c20affa9faed4e52 | |
parent | d32a8c15e1116e87f0105356eca1afb99842ab49 (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.h | 17 | ||||
-rw-r--r-- | drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h | 193 | ||||
-rw-r--r-- | drivers/scsi/mpt2sas/mpi/mpi2_init.h | 17 | ||||
-rw-r--r-- | drivers/scsi/mpt2sas/mpi/mpi2_ioc.h | 119 | ||||
-rw-r--r-- | drivers/scsi/mpt2sas/mpt2sas_scsih.c | 7 |
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 | ||
1834 | typedef struct _MPI2_SAS_IO_UNIT5_PHY_PM_SETTINGS { | 1855 | typedef 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 | |||
1924 | typedef 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 | |||
1959 | typedef 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 | |||
1977 | typedef 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 | |||
2002 | typedef 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 | |||
2023 | typedef 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 | ||
62 | typedef 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 | |||
74 | typedef union | 61 | typedef 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 | |||
904 | typedef 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 | ||
900 | typedef struct _MPI2_EVENT_HBD_PHY_SAS { | 920 | typedef 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 */ | ||
1435 | typedef 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 */ | ||
1507 | typedef 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 | }; |