aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/ipr.h
diff options
context:
space:
mode:
authorBrian King <brking@us.ibm.com>2006-09-25 13:39:20 -0400
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2006-09-26 12:23:18 -0400
commit35a39691e4daa3c371c265e4cb8356c67ded45ec (patch)
tree96d2acac2a4115570c70dc709a1e0ab7e46ec059 /drivers/scsi/ipr.h
parentd7694f8c0bb61829b1bd4d5543a51c66f04a6c3e (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.h18
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
853struct 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
852struct ipr_resource_entry { 860struct 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 *);