Since commit aa6ab905b2, sata_initialize returns -1 if init_sata or
scan_sata fails. But this return value becomes the do_sata return
value which is equivalent to CMD_RET_USAGE.
In case one issues 'sata init' and that the hardware fails to
initialize, there's no need to display the command usage. Instead
the command shoud just return the CMD_RET_FAILURE value.

Fixes: aa6ab905b2 (sata: fix sata command can not being executed bug)

Signed-off-by: Gary Bisson <gary.bis...@boundarydevices.com>
---
 cmd/sata.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/cmd/sata.c b/cmd/sata.c
index f56622acc2..4c53022ff6 100644
--- a/cmd/sata.c
+++ b/cmd/sata.c
@@ -28,14 +28,15 @@ static int do_sata(cmd_tbl_t *cmdtp, int flag, int argc, 
char * const argv[])
                if (sata_curr_device != -1)
                        sata_stop();
 
-               return sata_initialize();
+               return (sata_initialize() < 0) ?
+                       CMD_RET_FAILURE : CMD_RET_SUCCESS;
        }
 
        /* If the user has not yet run `sata init`, do it now */
        if (sata_curr_device == -1) {
                rc = sata_initialize();
                if (rc == -1)
-                       return rc;
+                       return CMD_RET_FAILURE;
                sata_curr_device = rc;
        }
 
-- 
2.11.0

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to