diff options
Diffstat (limited to 'drivers/scsi/ipr.h')
-rw-r--r-- | drivers/scsi/ipr.h | 26 |
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 | ||
607 | struct 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 | |||
606 | struct ipr_ioa_vpd { | 613 | struct 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 | ||
635 | struct 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 |
629 | struct ipr_inquiry_page0 { | 649 | struct 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 */ |