diff options
Diffstat (limited to 'drivers/scsi/ipr.h')
-rw-r--r-- | drivers/scsi/ipr.h | 45 |
1 files changed, 28 insertions, 17 deletions
diff --git a/drivers/scsi/ipr.h b/drivers/scsi/ipr.h index 88f285de97bb..bc53d7cebe0a 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.1" | 40 | #define IPR_DRIVER_VERSION "2.3.2" |
41 | #define IPR_DRIVER_DATE "(January 23, 2007)" | 41 | #define IPR_DRIVER_DATE "(March 23, 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 |
@@ -55,6 +55,7 @@ | |||
55 | #define IPR_NUM_BASE_CMD_BLKS 100 | 55 | #define IPR_NUM_BASE_CMD_BLKS 100 |
56 | 56 | ||
57 | #define PCI_DEVICE_ID_IBM_OBSIDIAN_E 0x0339 | 57 | #define PCI_DEVICE_ID_IBM_OBSIDIAN_E 0x0339 |
58 | #define PCI_DEVICE_ID_IBM_SCAMP_E 0x034A | ||
58 | 59 | ||
59 | #define IPR_SUBS_DEV_ID_2780 0x0264 | 60 | #define IPR_SUBS_DEV_ID_2780 0x0264 |
60 | #define IPR_SUBS_DEV_ID_5702 0x0266 | 61 | #define IPR_SUBS_DEV_ID_5702 0x0266 |
@@ -69,8 +70,12 @@ | |||
69 | #define IPR_SUBS_DEV_ID_572A 0x02C1 | 70 | #define IPR_SUBS_DEV_ID_572A 0x02C1 |
70 | #define IPR_SUBS_DEV_ID_572B 0x02C2 | 71 | #define IPR_SUBS_DEV_ID_572B 0x02C2 |
71 | #define IPR_SUBS_DEV_ID_572F 0x02C3 | 72 | #define IPR_SUBS_DEV_ID_572F 0x02C3 |
73 | #define IPR_SUBS_DEV_ID_574D 0x030B | ||
74 | #define IPR_SUBS_DEV_ID_574E 0x030A | ||
72 | #define IPR_SUBS_DEV_ID_575B 0x030D | 75 | #define IPR_SUBS_DEV_ID_575B 0x030D |
73 | #define IPR_SUBS_DEV_ID_575C 0x0338 | 76 | #define IPR_SUBS_DEV_ID_575C 0x0338 |
77 | #define IPR_SUBS_DEV_ID_575D 0x033E | ||
78 | #define IPR_SUBS_DEV_ID_57B3 0x033A | ||
74 | #define IPR_SUBS_DEV_ID_57B7 0x0360 | 79 | #define IPR_SUBS_DEV_ID_57B7 0x0360 |
75 | #define IPR_SUBS_DEV_ID_57B8 0x02C2 | 80 | #define IPR_SUBS_DEV_ID_57B8 0x02C2 |
76 | 81 | ||
@@ -104,6 +109,9 @@ | |||
104 | #define IPR_IOASC_IOA_WAS_RESET 0x10000001 | 109 | #define IPR_IOASC_IOA_WAS_RESET 0x10000001 |
105 | #define IPR_IOASC_PCI_ACCESS_ERROR 0x10000002 | 110 | #define IPR_IOASC_PCI_ACCESS_ERROR 0x10000002 |
106 | 111 | ||
112 | /* Driver data flags */ | ||
113 | #define IPR_USE_LONG_TRANSOP_TIMEOUT 0x00000001 | ||
114 | |||
107 | #define IPR_DEFAULT_MAX_ERROR_DUMP 984 | 115 | #define IPR_DEFAULT_MAX_ERROR_DUMP 984 |
108 | #define IPR_NUM_LOG_HCAMS 2 | 116 | #define IPR_NUM_LOG_HCAMS 2 |
109 | #define IPR_NUM_CFG_CHG_HCAMS 2 | 117 | #define IPR_NUM_CFG_CHG_HCAMS 2 |
@@ -179,6 +187,7 @@ | |||
179 | #define IPR_SET_SUP_DEVICE_TIMEOUT (2 * 60 * HZ) | 187 | #define IPR_SET_SUP_DEVICE_TIMEOUT (2 * 60 * HZ) |
180 | #define IPR_REQUEST_SENSE_TIMEOUT (10 * HZ) | 188 | #define IPR_REQUEST_SENSE_TIMEOUT (10 * HZ) |
181 | #define IPR_OPERATIONAL_TIMEOUT (5 * 60) | 189 | #define IPR_OPERATIONAL_TIMEOUT (5 * 60) |
190 | #define IPR_LONG_OPERATIONAL_TIMEOUT (12 * 60) | ||
182 | #define IPR_WAIT_FOR_RESET_TIMEOUT (2 * HZ) | 191 | #define IPR_WAIT_FOR_RESET_TIMEOUT (2 * HZ) |
183 | #define IPR_CHECK_FOR_RESET_TIMEOUT (HZ / 10) | 192 | #define IPR_CHECK_FOR_RESET_TIMEOUT (HZ / 10) |
184 | #define IPR_WAIT_FOR_BIST_TIMEOUT (2 * HZ) | 193 | #define IPR_WAIT_FOR_BIST_TIMEOUT (2 * HZ) |
@@ -413,9 +422,25 @@ struct ipr_ioarcb_ata_regs { | |||
413 | u8 ctl; | 422 | u8 ctl; |
414 | }__attribute__ ((packed, aligned(4))); | 423 | }__attribute__ ((packed, aligned(4))); |
415 | 424 | ||
425 | struct ipr_ioadl_desc { | ||
426 | __be32 flags_and_data_len; | ||
427 | #define IPR_IOADL_FLAGS_MASK 0xff000000 | ||
428 | #define IPR_IOADL_GET_FLAGS(x) (be32_to_cpu(x) & IPR_IOADL_FLAGS_MASK) | ||
429 | #define IPR_IOADL_DATA_LEN_MASK 0x00ffffff | ||
430 | #define IPR_IOADL_GET_DATA_LEN(x) (be32_to_cpu(x) & IPR_IOADL_DATA_LEN_MASK) | ||
431 | #define IPR_IOADL_FLAGS_READ 0x48000000 | ||
432 | #define IPR_IOADL_FLAGS_READ_LAST 0x49000000 | ||
433 | #define IPR_IOADL_FLAGS_WRITE 0x68000000 | ||
434 | #define IPR_IOADL_FLAGS_WRITE_LAST 0x69000000 | ||
435 | #define IPR_IOADL_FLAGS_LAST 0x01000000 | ||
436 | |||
437 | __be32 address; | ||
438 | }__attribute__((packed, aligned (8))); | ||
439 | |||
416 | struct ipr_ioarcb_add_data { | 440 | struct ipr_ioarcb_add_data { |
417 | union { | 441 | union { |
418 | struct ipr_ioarcb_ata_regs regs; | 442 | struct ipr_ioarcb_ata_regs regs; |
443 | struct ipr_ioadl_desc ioadl[5]; | ||
419 | __be32 add_cmd_parms[10]; | 444 | __be32 add_cmd_parms[10]; |
420 | }u; | 445 | }u; |
421 | }__attribute__ ((packed, aligned(4))); | 446 | }__attribute__ ((packed, aligned(4))); |
@@ -447,21 +472,6 @@ struct ipr_ioarcb { | |||
447 | struct ipr_ioarcb_add_data add_data; | 472 | struct ipr_ioarcb_add_data add_data; |
448 | }__attribute__((packed, aligned (4))); | 473 | }__attribute__((packed, aligned (4))); |
449 | 474 | ||
450 | struct ipr_ioadl_desc { | ||
451 | __be32 flags_and_data_len; | ||
452 | #define IPR_IOADL_FLAGS_MASK 0xff000000 | ||
453 | #define IPR_IOADL_GET_FLAGS(x) (be32_to_cpu(x) & IPR_IOADL_FLAGS_MASK) | ||
454 | #define IPR_IOADL_DATA_LEN_MASK 0x00ffffff | ||
455 | #define IPR_IOADL_GET_DATA_LEN(x) (be32_to_cpu(x) & IPR_IOADL_DATA_LEN_MASK) | ||
456 | #define IPR_IOADL_FLAGS_READ 0x48000000 | ||
457 | #define IPR_IOADL_FLAGS_READ_LAST 0x49000000 | ||
458 | #define IPR_IOADL_FLAGS_WRITE 0x68000000 | ||
459 | #define IPR_IOADL_FLAGS_WRITE_LAST 0x69000000 | ||
460 | #define IPR_IOADL_FLAGS_LAST 0x01000000 | ||
461 | |||
462 | __be32 address; | ||
463 | }__attribute__((packed, aligned (8))); | ||
464 | |||
465 | struct ipr_ioasa_vset { | 475 | struct ipr_ioasa_vset { |
466 | __be32 failing_lba_hi; | 476 | __be32 failing_lba_hi; |
467 | __be32 failing_lba_lo; | 477 | __be32 failing_lba_lo; |
@@ -1119,6 +1129,7 @@ struct ipr_ioa_cfg { | |||
1119 | 1129 | ||
1120 | struct ipr_bus_attributes bus_attr[IPR_MAX_NUM_BUSES]; | 1130 | struct ipr_bus_attributes bus_attr[IPR_MAX_NUM_BUSES]; |
1121 | 1131 | ||
1132 | unsigned int transop_timeout; | ||
1122 | const struct ipr_chip_cfg_t *chip_cfg; | 1133 | const struct ipr_chip_cfg_t *chip_cfg; |
1123 | 1134 | ||
1124 | void __iomem *hdw_dma_regs; /* iomapped PCI memory space */ | 1135 | void __iomem *hdw_dma_regs; /* iomapped PCI memory space */ |