diff options
author | James Bottomley | 2007-07-20 13:11:44 -0500 |
---|---|---|
committer | James Bottomley | 2007-07-20 15:52:08 -0500 |
commit | 110dd8f19df534b5e464bd1d8f491195a7e62a26 (patch) | |
tree | 4c6b1875b4ed081feb898ff62206a1c140df8bea /drivers/scsi/libsas | |
parent | fbc9a5727401442f6972bbddaeb0650f2bf2ebe2 (diff) |
[SCSI] libsas: fix scr_read/write users and update the libata documentation
This fixes up the usage in libsas (which are easy to miss, since they're
only in the scsi-misc tree) ... and also corrects the documentation on
the point of what these two function pointers actually return.
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/libsas')
-rw-r--r-- | drivers/scsi/libsas/sas_ata.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c index 2db258996751..359391f5735f 100644 --- a/drivers/scsi/libsas/sas_ata.c +++ b/drivers/scsi/libsas/sas_ata.c @@ -172,7 +172,7 @@ static unsigned int sas_ata_qc_issue(struct ata_queued_cmd *qc) qc->tf.nsect = 0; } - ata_tf_to_fis(&qc->tf, (u8*)&task->ata_task.fis, 0); + ata_tf_to_fis(&qc->tf, 1, 0, (u8*)&task->ata_task.fis); task->uldd_task = qc; if (is_atapi_taskfile(&qc->tf)) { memcpy(task->ata_task.atapi_packet, qc->cdb, qc->dev->cdb_len); @@ -298,7 +298,7 @@ static void sas_ata_tf_read(struct ata_port *ap, struct ata_taskfile *tf) memcpy(tf, &dev->sata_dev.tf, sizeof (*tf)); } -static void sas_ata_scr_write(struct ata_port *ap, unsigned int sc_reg_in, +static int sas_ata_scr_write(struct ata_port *ap, unsigned int sc_reg_in, u32 val) { struct domain_device *dev = ap->private_data; @@ -317,25 +317,33 @@ static void sas_ata_scr_write(struct ata_port *ap, unsigned int sc_reg_in, case SCR_ACTIVE: dev->sata_dev.ap->sactive = val; break; + default: + return -EINVAL; } + return 0; } -static u32 sas_ata_scr_read(struct ata_port *ap, unsigned int sc_reg_in) +static int sas_ata_scr_read(struct ata_port *ap, unsigned int sc_reg_in, + u32 *val) { struct domain_device *dev = ap->private_data; SAS_DPRINTK("STUB %s\n", __FUNCTION__); switch (sc_reg_in) { case SCR_STATUS: - return dev->sata_dev.sstatus; + *val = dev->sata_dev.sstatus; + return 0; case SCR_CONTROL: - return dev->sata_dev.scontrol; + *val = dev->sata_dev.scontrol; + return 0; case SCR_ERROR: - return dev->sata_dev.serror; + *val = dev->sata_dev.serror; + return 0; case SCR_ACTIVE: - return dev->sata_dev.ap->sactive; + *val = dev->sata_dev.ap->sactive; + return 0; default: - return 0xffffffffU; + return -EINVAL; } } |