]> git.sur5r.net Git - u-boot/commitdiff
dm: scsi: Adjust return value of scsi_exec()
authorSimon Glass <sjg@chromium.org>
Thu, 15 Jun 2017 03:28:44 +0000 (21:28 -0600)
committerSimon Glass <sjg@chromium.org>
Tue, 11 Jul 2017 16:08:19 +0000 (10:08 -0600)
Change this function to return an error number instead of true/false.
This allows us to return a proper error number.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
drivers/ata/ahci.c
drivers/scsi/scsi.c

index 5a20b97c4b8469f23942e2acd8cec994823df567..3528a1f3da3174c091968a75b16caf0e92bd7c8f 100644 (file)
@@ -960,14 +960,14 @@ static int ahci_scsi_exec(struct udevice *dev, struct scsi_cmd *pccb)
                break;
        default:
                printf("Unsupport SCSI command 0x%02x\n", pccb->cmd[0]);
-               return false;
+               return -ENOTSUPP;
        }
 
        if (ret) {
                debug("SCSI command 0x%02x ret errno %d\n", pccb->cmd[0], ret);
-               return false;
+               return ret;
        }
-       return true;
+       return 0;
 
 }
 
index f3f8d31e1a473d3b5cfa8ddf6e514653ef95f7aa..80c5ce699e6cf6aded2d3ec578667d3ad76a6fb8 100644 (file)
@@ -368,7 +368,7 @@ static int scsi_read_capacity(struct udevice *dev, struct scsi_cmd *pccb,
        pccb->msgout[0] = SCSI_IDENTIFY; /* NOT USED */
 
        pccb->datalen = 8;
-       if (scsi_exec(dev, pccb) != true)
+       if (scsi_exec(dev, pccb))
                return 1;
 
        *capacity = ((lbaint_t)pccb->pdata[0] << 24) |
@@ -393,7 +393,7 @@ static int scsi_read_capacity(struct udevice *dev, struct scsi_cmd *pccb,
        pccb->msgout[0] = SCSI_IDENTIFY; /* NOT USED */
 
        pccb->datalen = 16;
-       if (scsi_exec(dev, pccb) != true)
+       if (scsi_exec(dev, pccb))
                return 1;
 
        *capacity = ((uint64_t)pccb->pdata[0] << 56) |
@@ -499,7 +499,7 @@ static int scsi_detect_dev(struct udevice *dev, int target, int lun,
        pccb->pdata = (unsigned char *)&tempbuff;
        pccb->datalen = 512;
        scsi_setup_inquiry(pccb);
-       if (scsi_exec(dev, pccb) != true) {
+       if (scsi_exec(dev, pccb)) {
                if (pccb->contr_stat == SCSI_SEL_TIME_OUT) {
                        /*
                          * selection timeout => assuming no
@@ -530,7 +530,7 @@ static int scsi_detect_dev(struct udevice *dev, int target, int lun,
 
        pccb->datalen = 0;
        scsi_setup_test_unit_ready(pccb);
-       if (scsi_exec(dev, pccb) != true) {
+       if (scsi_exec(dev, pccb)) {
                if (dev_desc->removable) {
                        dev_desc->type = perq;
                        goto removable;