Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=110dd8f19df534b5e464bd1d8f491195a7e62a26
Commit:     110dd8f19df534b5e464bd1d8f491195a7e62a26
Parent:     fbc9a5727401442f6972bbddaeb0650f2bf2ebe2
Author:     James Bottomley <[EMAIL PROTECTED]>
AuthorDate: Fri Jul 20 13:11:44 2007 -0500
Committer:  James Bottomley <[EMAIL PROTECTED]>
CommitDate: Fri Jul 20 15:52:08 2007 -0500

    [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 <[EMAIL PROTECTED]>
---
 Documentation/DocBook/libata.tmpl |    5 +++--
 drivers/scsi/libsas/sas_ata.c     |   24 ++++++++++++++++--------
 2 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/Documentation/DocBook/libata.tmpl 
b/Documentation/DocBook/libata.tmpl
index e2e24b4..ba99757 100644
--- a/Documentation/DocBook/libata.tmpl
+++ b/Documentation/DocBook/libata.tmpl
@@ -456,8 +456,9 @@ void (*irq_clear) (struct ata_port *);
 
        <sect2><title>SATA phy read/write</title>
        <programlisting>
-u32 (*scr_read) (struct ata_port *ap, unsigned int sc_reg);
-void (*scr_write) (struct ata_port *ap, unsigned int sc_reg,
+int (*scr_read) (struct ata_port *ap, unsigned int sc_reg,
+                u32 *val);
+int (*scr_write) (struct ata_port *ap, unsigned int sc_reg,
                    u32 val);
        </programlisting>
 
diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c
index 2db2589..359391f 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;
        }
 }
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to