aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/ipr.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/ipr.h')
-rw-r--r--drivers/scsi/ipr.h26
1 files changed, 24 insertions, 2 deletions
diff --git a/drivers/scsi/ipr.h b/drivers/scsi/ipr.h
index c7e045aa16a0..daa96ee19d4f 100644
--- a/drivers/scsi/ipr.h
+++ b/drivers/scsi/ipr.h
@@ -37,8 +37,8 @@
37/* 37/*
38 * Literals 38 * Literals
39 */ 39 */
40#define IPR_DRIVER_VERSION "2.3.2" 40#define IPR_DRIVER_VERSION "2.4.0"
41#define IPR_DRIVER_DATE "(March 23, 2007)" 41#define IPR_DRIVER_DATE "(April 24, 2007)"
42 42
43/* 43/*
44 * IPR_MAX_CMD_PER_LUN: This defines the maximum number of outstanding 44 * IPR_MAX_CMD_PER_LUN: This defines the maximum number of outstanding
@@ -180,6 +180,7 @@
180#define IPR_SHUTDOWN_TIMEOUT (ipr_fastfail ? 60 * HZ : 10 * 60 * HZ) 180#define IPR_SHUTDOWN_TIMEOUT (ipr_fastfail ? 60 * HZ : 10 * 60 * HZ)
181#define IPR_VSET_RW_TIMEOUT (ipr_fastfail ? 30 * HZ : 2 * 60 * HZ) 181#define IPR_VSET_RW_TIMEOUT (ipr_fastfail ? 30 * HZ : 2 * 60 * HZ)
182#define IPR_ABBREV_SHUTDOWN_TIMEOUT (10 * HZ) 182#define IPR_ABBREV_SHUTDOWN_TIMEOUT (10 * HZ)
183#define IPR_DUAL_IOA_ABBR_SHUTDOWN_TO (2 * 60 * HZ)
183#define IPR_DEVICE_RESET_TIMEOUT (ipr_fastfail ? 10 * HZ : 30 * HZ) 184#define IPR_DEVICE_RESET_TIMEOUT (ipr_fastfail ? 10 * HZ : 30 * HZ)
184#define IPR_CANCEL_ALL_TIMEOUT (ipr_fastfail ? 10 * HZ : 30 * HZ) 185#define IPR_CANCEL_ALL_TIMEOUT (ipr_fastfail ? 10 * HZ : 30 * HZ)
185#define IPR_ABORT_TASK_TIMEOUT (ipr_fastfail ? 10 * HZ : 30 * HZ) 186#define IPR_ABORT_TASK_TIMEOUT (ipr_fastfail ? 10 * HZ : 30 * HZ)
@@ -603,6 +604,12 @@ struct ipr_mode_page28 {
603 struct ipr_dev_bus_entry bus[0]; 604 struct ipr_dev_bus_entry bus[0];
604}__attribute__((packed)); 605}__attribute__((packed));
605 606
607struct ipr_mode_page24 {
608 struct ipr_mode_page_hdr hdr;
609 u8 flags;
610#define IPR_ENABLE_DUAL_IOA_AF 0x80
611}__attribute__((packed));
612
606struct ipr_ioa_vpd { 613struct ipr_ioa_vpd {
607 struct ipr_std_inq_data std_inq_data; 614 struct ipr_std_inq_data std_inq_data;
608 u8 ascii_part_num[12]; 615 u8 ascii_part_num[12];
@@ -625,6 +632,19 @@ struct ipr_inquiry_page3 {
625 u8 patch_number[4]; 632 u8 patch_number[4];
626}__attribute__((packed)); 633}__attribute__((packed));
627 634
635struct ipr_inquiry_cap {
636 u8 peri_qual_dev_type;
637 u8 page_code;
638 u8 reserved1;
639 u8 page_length;
640 u8 ascii_len;
641 u8 reserved2;
642 u8 sis_version[2];
643 u8 cap;
644#define IPR_CAP_DUAL_IOA_RAID 0x80
645 u8 reserved3[15];
646}__attribute__((packed));
647
628#define IPR_INQUIRY_PAGE0_ENTRIES 20 648#define IPR_INQUIRY_PAGE0_ENTRIES 20
629struct ipr_inquiry_page0 { 649struct ipr_inquiry_page0 {
630 u8 peri_qual_dev_type; 650 u8 peri_qual_dev_type;
@@ -963,6 +983,7 @@ struct ipr_misc_cbs {
963 struct ipr_ioa_vpd ioa_vpd; 983 struct ipr_ioa_vpd ioa_vpd;
964 struct ipr_inquiry_page0 page0_data; 984 struct ipr_inquiry_page0 page0_data;
965 struct ipr_inquiry_page3 page3_data; 985 struct ipr_inquiry_page3 page3_data;
986 struct ipr_inquiry_cap cap;
966 struct ipr_mode_pages mode_pages; 987 struct ipr_mode_pages mode_pages;
967 struct ipr_supported_device supp_dev; 988 struct ipr_supported_device supp_dev;
968}; 989};
@@ -1069,6 +1090,7 @@ struct ipr_ioa_cfg {
1069 u8 allow_cmds:1; 1090 u8 allow_cmds:1;
1070 u8 allow_ml_add_del:1; 1091 u8 allow_ml_add_del:1;
1071 u8 needs_hard_reset:1; 1092 u8 needs_hard_reset:1;
1093 u8 dual_raid:1;
1072 1094
1073 enum ipr_cache_state cache_state; 1095 enum ipr_cache_state cache_state;
1074 u16 type; /* CCIN of the card */ 1096 u16 type; /* CCIN of the card */