From: Simon Glass Date: Thu, 15 Jun 2017 03:28:44 +0000 (-0600) Subject: dm: scsi: Adjust return value of scsi_exec() X-Git-Url: http://git.dujemihanovic.xyz/?a=commitdiff_plain;h=f6580ef39b332387f84334d238320ce99115af67;p=u-boot.git dm: scsi: Adjust return value of scsi_exec() 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 Reviewed-by: Bin Meng --- diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c index 5a20b97c4b..3528a1f3da 100644 --- a/drivers/ata/ahci.c +++ b/drivers/ata/ahci.c @@ -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; } diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c index f3f8d31e1a..80c5ce699e 100644 --- a/drivers/scsi/scsi.c +++ b/drivers/scsi/scsi.c @@ -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;