diff options
author | Brian King <brking@us.ibm.com> | 2006-09-25 13:39:20 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2006-09-26 12:23:18 -0400 |
commit | 35a39691e4daa3c371c265e4cb8356c67ded45ec (patch) | |
tree | 96d2acac2a4115570c70dc709a1e0ab7e46ec059 /drivers/scsi/ipr.h | |
parent | d7694f8c0bb61829b1bd4d5543a51c66f04a6c3e (diff) |
[SCSI] ipr: Support attaching SATA devices
Adds support to attach SATA devices to ipr SAS adapters.
Signed-off-by: Brian King <brking@us.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/ipr.h')
-rw-r--r-- | drivers/scsi/ipr.h | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/drivers/scsi/ipr.h b/drivers/scsi/ipr.h index 11eaff524327..6d035283af08 100644 --- a/drivers/scsi/ipr.h +++ b/drivers/scsi/ipr.h | |||
@@ -28,6 +28,7 @@ | |||
28 | 28 | ||
29 | #include <linux/types.h> | 29 | #include <linux/types.h> |
30 | #include <linux/completion.h> | 30 | #include <linux/completion.h> |
31 | #include <linux/libata.h> | ||
31 | #include <linux/list.h> | 32 | #include <linux/list.h> |
32 | #include <linux/kref.h> | 33 | #include <linux/kref.h> |
33 | #include <scsi/scsi.h> | 34 | #include <scsi/scsi.h> |
@@ -36,8 +37,8 @@ | |||
36 | /* | 37 | /* |
37 | * Literals | 38 | * Literals |
38 | */ | 39 | */ |
39 | #define IPR_DRIVER_VERSION "2.1.4" | 40 | #define IPR_DRIVER_VERSION "2.2.0" |
40 | #define IPR_DRIVER_DATE "(August 2, 2006)" | 41 | #define IPR_DRIVER_DATE "(September 25, 2006)" |
41 | 42 | ||
42 | /* | 43 | /* |
43 | * 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 |
@@ -849,6 +850,13 @@ struct ipr_bus_attributes { | |||
849 | u32 max_xfer_rate; | 850 | u32 max_xfer_rate; |
850 | }; | 851 | }; |
851 | 852 | ||
853 | struct ipr_sata_port { | ||
854 | struct ipr_ioa_cfg *ioa_cfg; | ||
855 | struct ata_port *ap; | ||
856 | struct ipr_resource_entry *res; | ||
857 | struct ipr_ioasa_gata ioasa; | ||
858 | }; | ||
859 | |||
852 | struct ipr_resource_entry { | 860 | struct ipr_resource_entry { |
853 | struct ipr_config_table_entry cfgte; | 861 | struct ipr_config_table_entry cfgte; |
854 | u8 needs_sync_complete:1; | 862 | u8 needs_sync_complete:1; |
@@ -858,6 +866,7 @@ struct ipr_resource_entry { | |||
858 | u8 resetting_device:1; | 866 | u8 resetting_device:1; |
859 | 867 | ||
860 | struct scsi_device *sdev; | 868 | struct scsi_device *sdev; |
869 | struct ipr_sata_port *sata_port; | ||
861 | struct list_head queue; | 870 | struct list_head queue; |
862 | }; | 871 | }; |
863 | 872 | ||
@@ -928,10 +937,11 @@ struct ipr_trace_entry { | |||
928 | u32 time; | 937 | u32 time; |
929 | 938 | ||
930 | u8 op_code; | 939 | u8 op_code; |
940 | u8 ata_op_code; | ||
931 | u8 type; | 941 | u8 type; |
932 | #define IPR_TRACE_START 0x00 | 942 | #define IPR_TRACE_START 0x00 |
933 | #define IPR_TRACE_FINISH 0xff | 943 | #define IPR_TRACE_FINISH 0xff |
934 | u16 cmd_index; | 944 | u8 cmd_index; |
935 | 945 | ||
936 | __be32 res_handle; | 946 | __be32 res_handle; |
937 | union { | 947 | union { |
@@ -1073,6 +1083,7 @@ struct ipr_ioa_cfg { | |||
1073 | 1083 | ||
1074 | struct ipr_cmnd *reset_cmd; | 1084 | struct ipr_cmnd *reset_cmd; |
1075 | 1085 | ||
1086 | struct ata_host ata_host; | ||
1076 | char ipr_cmd_label[8]; | 1087 | char ipr_cmd_label[8]; |
1077 | #define IPR_CMD_LABEL "ipr_cmnd" | 1088 | #define IPR_CMD_LABEL "ipr_cmnd" |
1078 | struct ipr_cmnd *ipr_cmnd_list[IPR_NUM_CMD_BLKS]; | 1089 | struct ipr_cmnd *ipr_cmnd_list[IPR_NUM_CMD_BLKS]; |
@@ -1085,6 +1096,7 @@ struct ipr_cmnd { | |||
1085 | struct ipr_ioadl_desc ioadl[IPR_NUM_IOADL_ENTRIES]; | 1096 | struct ipr_ioadl_desc ioadl[IPR_NUM_IOADL_ENTRIES]; |
1086 | struct list_head queue; | 1097 | struct list_head queue; |
1087 | struct scsi_cmnd *scsi_cmd; | 1098 | struct scsi_cmnd *scsi_cmd; |
1099 | struct ata_queued_cmd *qc; | ||
1088 | struct completion completion; | 1100 | struct completion completion; |
1089 | struct timer_list timer; | 1101 | struct timer_list timer; |
1090 | void (*done) (struct ipr_cmnd *); | 1102 | void (*done) (struct ipr_cmnd *); |