diff options
Diffstat (limited to 'drivers/scsi/megaraid/megaraid_sas_fusion.h')
-rw-r--r-- | drivers/scsi/megaraid/megaraid_sas_fusion.h | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.h b/drivers/scsi/megaraid/megaraid_sas_fusion.h index ced6dc0cf8e8..473005c99b44 100644 --- a/drivers/scsi/megaraid/megaraid_sas_fusion.h +++ b/drivers/scsi/megaraid/megaraid_sas_fusion.h | |||
@@ -35,8 +35,13 @@ | |||
35 | #define _MEGARAID_SAS_FUSION_H_ | 35 | #define _MEGARAID_SAS_FUSION_H_ |
36 | 36 | ||
37 | /* Fusion defines */ | 37 | /* Fusion defines */ |
38 | #define MEGASAS_MAX_SZ_CHAIN_FRAME 1024 | 38 | #define MEGASAS_CHAIN_FRAME_SZ_MIN 1024 |
39 | #define MFI_FUSION_ENABLE_INTERRUPT_MASK (0x00000009) | 39 | #define MFI_FUSION_ENABLE_INTERRUPT_MASK (0x00000009) |
40 | #define MEGASAS_MAX_CHAIN_SHIFT 5 | ||
41 | #define MEGASAS_MAX_CHAIN_SIZE_UNITS_MASK 0x400000 | ||
42 | #define MEGASAS_MAX_CHAIN_SIZE_MASK 0x3E0 | ||
43 | #define MEGASAS_256K_IO 128 | ||
44 | #define MEGASAS_1MB_IO (MEGASAS_256K_IO * 4) | ||
40 | #define MEGA_MPI2_RAID_DEFAULT_IO_FRAME_SIZE 256 | 45 | #define MEGA_MPI2_RAID_DEFAULT_IO_FRAME_SIZE 256 |
41 | #define MEGASAS_MPI2_FUNCTION_PASSTHRU_IO_REQUEST 0xF0 | 46 | #define MEGASAS_MPI2_FUNCTION_PASSTHRU_IO_REQUEST 0xF0 |
42 | #define MEGASAS_MPI2_FUNCTION_LD_IO_REQUEST 0xF1 | 47 | #define MEGASAS_MPI2_FUNCTION_LD_IO_REQUEST 0xF1 |
@@ -89,6 +94,12 @@ enum MR_RAID_FLAGS_IO_SUB_TYPE { | |||
89 | #define MEGASAS_FP_CMD_LEN 16 | 94 | #define MEGASAS_FP_CMD_LEN 16 |
90 | #define MEGASAS_FUSION_IN_RESET 0 | 95 | #define MEGASAS_FUSION_IN_RESET 0 |
91 | #define THRESHOLD_REPLY_COUNT 50 | 96 | #define THRESHOLD_REPLY_COUNT 50 |
97 | #define JBOD_MAPS_COUNT 2 | ||
98 | |||
99 | enum MR_FUSION_ADAPTER_TYPE { | ||
100 | THUNDERBOLT_SERIES = 0, | ||
101 | INVADER_SERIES = 1, | ||
102 | }; | ||
92 | 103 | ||
93 | /* | 104 | /* |
94 | * Raid Context structure which describes MegaRAID specific IO Parameters | 105 | * Raid Context structure which describes MegaRAID specific IO Parameters |
@@ -117,7 +128,9 @@ struct RAID_CONTEXT { | |||
117 | u8 numSGE; | 128 | u8 numSGE; |
118 | __le16 configSeqNum; | 129 | __le16 configSeqNum; |
119 | u8 spanArm; | 130 | u8 spanArm; |
120 | u8 resvd2[3]; | 131 | u8 priority; |
132 | u8 numSGEExt; | ||
133 | u8 resvd2; | ||
121 | }; | 134 | }; |
122 | 135 | ||
123 | #define RAID_CTX_SPANARM_ARM_SHIFT (0) | 136 | #define RAID_CTX_SPANARM_ARM_SHIFT (0) |
@@ -486,6 +499,7 @@ struct MPI2_IOC_INIT_REQUEST { | |||
486 | #define MAX_PHYSICAL_DEVICES 256 | 499 | #define MAX_PHYSICAL_DEVICES 256 |
487 | #define MAX_RAIDMAP_PHYSICAL_DEVICES (MAX_PHYSICAL_DEVICES) | 500 | #define MAX_RAIDMAP_PHYSICAL_DEVICES (MAX_PHYSICAL_DEVICES) |
488 | #define MR_DCMD_LD_MAP_GET_INFO 0x0300e101 | 501 | #define MR_DCMD_LD_MAP_GET_INFO 0x0300e101 |
502 | #define MR_DCMD_SYSTEM_PD_MAP_GET_INFO 0x0200e102 | ||
489 | #define MR_DCMD_CTRL_SHARED_HOST_MEM_ALLOC 0x010e8485 /* SR-IOV HB alloc*/ | 503 | #define MR_DCMD_CTRL_SHARED_HOST_MEM_ALLOC 0x010e8485 /* SR-IOV HB alloc*/ |
490 | #define MR_DCMD_LD_VF_MAP_GET_ALL_LDS_111 0x03200200 | 504 | #define MR_DCMD_LD_VF_MAP_GET_ALL_LDS_111 0x03200200 |
491 | #define MR_DCMD_LD_VF_MAP_GET_ALL_LDS 0x03150200 | 505 | #define MR_DCMD_LD_VF_MAP_GET_ALL_LDS 0x03150200 |
@@ -789,6 +803,21 @@ struct MR_FW_RAID_MAP_EXT { | |||
789 | struct MR_LD_SPAN_MAP ldSpanMap[MAX_LOGICAL_DRIVES_EXT]; | 803 | struct MR_LD_SPAN_MAP ldSpanMap[MAX_LOGICAL_DRIVES_EXT]; |
790 | }; | 804 | }; |
791 | 805 | ||
806 | /* | ||
807 | * * define MR_PD_CFG_SEQ structure for system PDs | ||
808 | * */ | ||
809 | struct MR_PD_CFG_SEQ { | ||
810 | __le16 seqNum; | ||
811 | __le16 devHandle; | ||
812 | u8 reserved[4]; | ||
813 | } __packed; | ||
814 | |||
815 | struct MR_PD_CFG_SEQ_NUM_SYNC { | ||
816 | __le32 size; | ||
817 | __le32 count; | ||
818 | struct MR_PD_CFG_SEQ seq[1]; | ||
819 | } __packed; | ||
820 | |||
792 | struct fusion_context { | 821 | struct fusion_context { |
793 | struct megasas_cmd_fusion **cmd_list; | 822 | struct megasas_cmd_fusion **cmd_list; |
794 | dma_addr_t req_frames_desc_phys; | 823 | dma_addr_t req_frames_desc_phys; |
@@ -828,9 +857,12 @@ struct fusion_context { | |||
828 | u32 current_map_sz; | 857 | u32 current_map_sz; |
829 | u32 drv_map_sz; | 858 | u32 drv_map_sz; |
830 | u32 drv_map_pages; | 859 | u32 drv_map_pages; |
860 | struct MR_PD_CFG_SEQ_NUM_SYNC *pd_seq_sync[JBOD_MAPS_COUNT]; | ||
861 | dma_addr_t pd_seq_phys[JBOD_MAPS_COUNT]; | ||
831 | u8 fast_path_io; | 862 | u8 fast_path_io; |
832 | struct LD_LOAD_BALANCE_INFO load_balance_info[MAX_LOGICAL_DRIVES_EXT]; | 863 | struct LD_LOAD_BALANCE_INFO load_balance_info[MAX_LOGICAL_DRIVES_EXT]; |
833 | LD_SPAN_INFO log_to_span[MAX_LOGICAL_DRIVES_EXT]; | 864 | LD_SPAN_INFO log_to_span[MAX_LOGICAL_DRIVES_EXT]; |
865 | u8 adapter_type; | ||
834 | }; | 866 | }; |
835 | 867 | ||
836 | union desc_value { | 868 | union desc_value { |