diff options
author | Brian King <brking@us.ibm.com> | 2006-08-07 14:27:31 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-08-09 00:08:39 -0400 |
commit | 80289167fd3ebaeb7b2641e69cbec44b61165fe7 (patch) | |
tree | cb979ef0563377b9c901359dbcb1f117ff7d48d5 /drivers/scsi/libata.h | |
parent | f6d950e2a5209bd7e3fb1a238f43f24f3697f5b0 (diff) | |
download | lwn-80289167fd3ebaeb7b2641e69cbec44b61165fe7.tar.gz lwn-80289167fd3ebaeb7b2641e69cbec44b61165fe7.zip |
[PATCH] libata: Add support for SATA attachment to SAS adapters
The following patch enhances libata to allow SAS device drivers
to utilize libata to talk to SATA devices. It introduces some
new APIs which allow libata to be used without allocating a
virtual scsi host.
New APIs:
ata_sas_port_alloc - Allocate an ata_port
ata_sas_port_init - Initialize an ata_port (probe device, etc)
ata_sas_port_destroy - Free an ata_port allocated by ata_sas_port_alloc
ata_sas_slave_configure - configure scsi device
ata_sas_queuecmd - queue a scsi command, similar to ata_scsi_queuecomand
These new APIs can be used either directly by a SAS LLDD or could be used
by the SAS transport class.
Possible usage for a SAS LLDD would be:
scsi_scan_host
target_alloc
ata_sas_port_alloc
slave_alloc
ata_sas_port_init
slave_configure
ata_sas_slave_configure
Commands received by the LLDD for SATA devices would call ata_sas_queuecmd.
Device teardown would occur with:
slave_destroy
port_disable
target_destroy
ata_sas_port_destroy
Signed-off-by: Brian King <brking@us.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/scsi/libata.h')
-rw-r--r-- | drivers/scsi/libata.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/scsi/libata.h b/drivers/scsi/libata.h index 0b7a37c2785d..d4a4f82360ec 100644 --- a/drivers/scsi/libata.h +++ b/drivers/scsi/libata.h @@ -111,6 +111,7 @@ extern void ata_scsi_rbuf_fill(struct ata_scsi_args *args, u8 *rbuf, unsigned int buflen)); extern void ata_schedule_scsi_eh(struct Scsi_Host *shost); extern void ata_scsi_dev_rescan(void *data); +extern int ata_bus_probe(struct ata_port *ap); /* libata-eh.c */ extern enum scsi_eh_timer_return ata_scsi_timed_out(struct scsi_cmnd *cmd); |