Commit 35a39691 authored by Brian King's avatar Brian King Committed by James Bottomley

[SCSI] ipr: Support attaching SATA devices

Adds support to attach SATA devices to ipr SAS adapters.
Signed-off-by: default avatarBrian King <brking@us.ibm.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent d7694f8c
...@@ -1014,7 +1014,7 @@ config SCSI_SYM53C8XX_MMIO ...@@ -1014,7 +1014,7 @@ config SCSI_SYM53C8XX_MMIO
config SCSI_IPR config SCSI_IPR
tristate "IBM Power Linux RAID adapter support" tristate "IBM Power Linux RAID adapter support"
depends on PCI && SCSI depends on PCI && SCSI && ATA
select FW_LOADER select FW_LOADER
---help--- ---help---
This driver supports the IBM Power Linux family RAID adapters. This driver supports the IBM Power Linux family RAID adapters.
......
This diff is collapsed.
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#include <linux/types.h> #include <linux/types.h>
#include <linux/completion.h> #include <linux/completion.h>
#include <linux/libata.h>
#include <linux/list.h> #include <linux/list.h>
#include <linux/kref.h> #include <linux/kref.h>
#include <scsi/scsi.h> #include <scsi/scsi.h>
...@@ -36,8 +37,8 @@ ...@@ -36,8 +37,8 @@
/* /*
* Literals * Literals
*/ */
#define IPR_DRIVER_VERSION "2.1.4" #define IPR_DRIVER_VERSION "2.2.0"
#define IPR_DRIVER_DATE "(August 2, 2006)" #define IPR_DRIVER_DATE "(September 25, 2006)"
/* /*
* IPR_MAX_CMD_PER_LUN: This defines the maximum number of outstanding * IPR_MAX_CMD_PER_LUN: This defines the maximum number of outstanding
...@@ -849,6 +850,13 @@ struct ipr_bus_attributes { ...@@ -849,6 +850,13 @@ struct ipr_bus_attributes {
u32 max_xfer_rate; u32 max_xfer_rate;
}; };
struct ipr_sata_port {
struct ipr_ioa_cfg *ioa_cfg;
struct ata_port *ap;
struct ipr_resource_entry *res;
struct ipr_ioasa_gata ioasa;
};
struct ipr_resource_entry { struct ipr_resource_entry {
struct ipr_config_table_entry cfgte; struct ipr_config_table_entry cfgte;
u8 needs_sync_complete:1; u8 needs_sync_complete:1;
...@@ -858,6 +866,7 @@ struct ipr_resource_entry { ...@@ -858,6 +866,7 @@ struct ipr_resource_entry {
u8 resetting_device:1; u8 resetting_device:1;
struct scsi_device *sdev; struct scsi_device *sdev;
struct ipr_sata_port *sata_port;
struct list_head queue; struct list_head queue;
}; };
...@@ -928,10 +937,11 @@ struct ipr_trace_entry { ...@@ -928,10 +937,11 @@ struct ipr_trace_entry {
u32 time; u32 time;
u8 op_code; u8 op_code;
u8 ata_op_code;
u8 type; u8 type;
#define IPR_TRACE_START 0x00 #define IPR_TRACE_START 0x00
#define IPR_TRACE_FINISH 0xff #define IPR_TRACE_FINISH 0xff
u16 cmd_index; u8 cmd_index;
__be32 res_handle; __be32 res_handle;
union { union {
...@@ -1073,6 +1083,7 @@ struct ipr_ioa_cfg { ...@@ -1073,6 +1083,7 @@ struct ipr_ioa_cfg {
struct ipr_cmnd *reset_cmd; struct ipr_cmnd *reset_cmd;
struct ata_host ata_host;
char ipr_cmd_label[8]; char ipr_cmd_label[8];
#define IPR_CMD_LABEL "ipr_cmnd" #define IPR_CMD_LABEL "ipr_cmnd"
struct ipr_cmnd *ipr_cmnd_list[IPR_NUM_CMD_BLKS]; struct ipr_cmnd *ipr_cmnd_list[IPR_NUM_CMD_BLKS];
...@@ -1085,6 +1096,7 @@ struct ipr_cmnd { ...@@ -1085,6 +1096,7 @@ struct ipr_cmnd {
struct ipr_ioadl_desc ioadl[IPR_NUM_IOADL_ENTRIES]; struct ipr_ioadl_desc ioadl[IPR_NUM_IOADL_ENTRIES];
struct list_head queue; struct list_head queue;
struct scsi_cmnd *scsi_cmd; struct scsi_cmnd *scsi_cmd;
struct ata_queued_cmd *qc;
struct completion completion; struct completion completion;
struct timer_list timer; struct timer_list timer;
void (*done) (struct ipr_cmnd *); void (*done) (struct ipr_cmnd *);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment