aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/megaraid/megaraid_sas.h
diff options
context:
space:
mode:
authoradam radford <aradford@gmail.com>2010-12-21 16:34:31 -0500
committerJames Bottomley <James.Bottomley@suse.de>2010-12-23 00:26:53 -0500
commit9c915a8c99bce637226aa09cb05fc18486b229cb (patch)
tree7bc2330661366db6407548a12366f7340f1b31e9 /drivers/scsi/megaraid/megaraid_sas.h
parentcd50ba8ede5cd3c4606a8e5d163913da5ff36ad7 (diff)
[SCSI] megaraid_sas: Add 9565/9285 specific code
This patch adds MegaRAID 9265/9285 (Device id 0x5b) specific code Signed-off-by: Adam Radford <aradford@gmail.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/megaraid/megaraid_sas.h')
-rw-r--r--drivers/scsi/megaraid/megaraid_sas.h38
1 files changed, 30 insertions, 8 deletions
diff --git a/drivers/scsi/megaraid/megaraid_sas.h b/drivers/scsi/megaraid/megaraid_sas.h
index a0b8ee1a5d2d..1b5e375732c0 100644
--- a/drivers/scsi/megaraid/megaraid_sas.h
+++ b/drivers/scsi/megaraid/megaraid_sas.h
@@ -33,9 +33,9 @@
33/* 33/*
34 * MegaRAID SAS Driver meta data 34 * MegaRAID SAS Driver meta data
35 */ 35 */
36#define MEGASAS_VERSION "00.00.04.31-rc1" 36#define MEGASAS_VERSION "00.00.05.29-rc1"
37#define MEGASAS_RELDATE "May 3, 2010" 37#define MEGASAS_RELDATE "Dec. 7, 2010"
38#define MEGASAS_EXT_VERSION "Mon. May 3, 11:41:51 PST 2010" 38#define MEGASAS_EXT_VERSION "Tue. Dec. 7 17:00:00 PDT 2010"
39 39
40/* 40/*
41 * Device IDs 41 * Device IDs
@@ -47,6 +47,7 @@
47#define PCI_DEVICE_ID_LSI_SAS0079GEN2 0x0079 47#define PCI_DEVICE_ID_LSI_SAS0079GEN2 0x0079
48#define PCI_DEVICE_ID_LSI_SAS0073SKINNY 0x0073 48#define PCI_DEVICE_ID_LSI_SAS0073SKINNY 0x0073
49#define PCI_DEVICE_ID_LSI_SAS0071SKINNY 0x0071 49#define PCI_DEVICE_ID_LSI_SAS0071SKINNY 0x0071
50#define PCI_DEVICE_ID_LSI_FUSION 0x005b
50 51
51/* 52/*
52 * ===================================== 53 * =====================================
@@ -436,7 +437,6 @@ struct megasas_ctrl_prop {
436 * Add properties that can be controlled by 437 * Add properties that can be controlled by
437 * a bit in the following structure. 438 * a bit in the following structure.
438 */ 439 */
439
440 struct { 440 struct {
441 u32 copyBackDisabled : 1; 441 u32 copyBackDisabled : 1;
442 u32 SMARTerEnabled : 1; 442 u32 SMARTerEnabled : 1;
@@ -716,6 +716,7 @@ struct megasas_ctrl_info {
716#define MEGASAS_DEFAULT_INIT_ID -1 716#define MEGASAS_DEFAULT_INIT_ID -1
717#define MEGASAS_MAX_LUN 8 717#define MEGASAS_MAX_LUN 8
718#define MEGASAS_MAX_LD 64 718#define MEGASAS_MAX_LD 64
719#define MEGASAS_DEFAULT_CMD_PER_LUN 128
719#define MEGASAS_MAX_PD (MEGASAS_MAX_PD_CHANNELS * \ 720#define MEGASAS_MAX_PD (MEGASAS_MAX_PD_CHANNELS * \
720 MEGASAS_MAX_DEV_PER_CHANNEL) 721 MEGASAS_MAX_DEV_PER_CHANNEL)
721#define MEGASAS_MAX_LD_IDS (MEGASAS_MAX_LD_CHANNELS * \ 722#define MEGASAS_MAX_LD_IDS (MEGASAS_MAX_LD_CHANNELS * \
@@ -784,7 +785,10 @@ struct megasas_ctrl_info {
784*/ 785*/
785 786
786struct megasas_register_set { 787struct megasas_register_set {
787 u32 reserved_0[4]; /*0000h*/ 788 u32 doorbell; /*0000h*/
789 u32 fusion_seq_offset; /*0004h*/
790 u32 fusion_host_diag; /*0008h*/
791 u32 reserved_01; /*000Ch*/
788 792
789 u32 inbound_msg_0; /*0010h*/ 793 u32 inbound_msg_0; /*0010h*/
790 u32 inbound_msg_1; /*0014h*/ 794 u32 inbound_msg_1; /*0014h*/
@@ -804,15 +808,18 @@ struct megasas_register_set {
804 u32 inbound_queue_port; /*0040h*/ 808 u32 inbound_queue_port; /*0040h*/
805 u32 outbound_queue_port; /*0044h*/ 809 u32 outbound_queue_port; /*0044h*/
806 810
807 u32 reserved_2[22]; /*0048h*/ 811 u32 reserved_2[9]; /*0048h*/
812 u32 reply_post_host_index; /*006Ch*/
813 u32 reserved_2_2[12]; /*0070h*/
808 814
809 u32 outbound_doorbell_clear; /*00A0h*/ 815 u32 outbound_doorbell_clear; /*00A0h*/
810 816
811 u32 reserved_3[3]; /*00A4h*/ 817 u32 reserved_3[3]; /*00A4h*/
812 818
813 u32 outbound_scratch_pad ; /*00B0h*/ 819 u32 outbound_scratch_pad ; /*00B0h*/
820 u32 outbound_scratch_pad_2; /*00B4h*/
814 821
815 u32 reserved_4[3]; /*00B4h*/ 822 u32 reserved_4[2]; /*00B8h*/
816 823
817 u32 inbound_low_queue_port ; /*00C0h*/ 824 u32 inbound_low_queue_port ; /*00C0h*/
818 825
@@ -1287,6 +1294,9 @@ struct megasas_instance {
1287 1294
1288 u16 max_num_sge; 1295 u16 max_num_sge;
1289 u16 max_fw_cmds; 1296 u16 max_fw_cmds;
1297 /* For Fusion its num IOCTL cmds, for others MFI based its
1298 max_fw_cmds */
1299 u16 max_mfi_cmds;
1290 u32 max_sectors_per_req; 1300 u32 max_sectors_per_req;
1291 struct megasas_aen_event *ev; 1301 struct megasas_aen_event *ev;
1292 1302
@@ -1336,9 +1346,15 @@ struct megasas_instance {
1336 struct timer_list io_completion_timer; 1346 struct timer_list io_completion_timer;
1337 struct list_head internal_reset_pending_q; 1347 struct list_head internal_reset_pending_q;
1338 1348
1349 /* Ptr to hba specfic information */
1350 void *ctrl_context;
1339 u8 msi_flag; 1351 u8 msi_flag;
1340 struct msix_entry msixentry; 1352 struct msix_entry msixentry;
1353 u64 map_id;
1354 struct megasas_cmd *map_update_cmd;
1341 unsigned long bar; 1355 unsigned long bar;
1356 long reset_flags;
1357 struct mutex reset_mutex;
1342}; 1358};
1343 1359
1344enum { 1360enum {
@@ -1397,7 +1413,13 @@ struct megasas_cmd {
1397 struct list_head list; 1413 struct list_head list;
1398 struct scsi_cmnd *scmd; 1414 struct scsi_cmnd *scmd;
1399 struct megasas_instance *instance; 1415 struct megasas_instance *instance;
1400 u32 frame_count; 1416 union {
1417 struct {
1418 u16 smid;
1419 u16 resvd;
1420 } context;
1421 u32 frame_count;
1422 };
1401}; 1423};
1402 1424
1403#define MAX_MGMT_ADAPTERS 1024 1425#define MAX_MGMT_ADAPTERS 1024