[PATCH] libata: Add support for SATA attachment to SAS adapters
authorBrian King <brking@us.ibm.com>
Mon, 7 Aug 2006 19:27:31 +0000 (14:27 -0500)
committerJeff Garzik <jeff@garzik.org>
Wed, 9 Aug 2006 04:08:39 +0000 (00:08 -0400)
commit80289167fd3ebaeb7b2641e69cbec44b61165fe7
treecb979ef0563377b9c901359dbcb1f117ff7d48d5
parentf6d950e2a5209bd7e3fb1a238f43f24f3697f5b0
[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>
drivers/scsi/libata-core.c
drivers/scsi/libata-scsi.c
drivers/scsi/libata.h
include/linux/libata.h