summaryrefslogtreecommitdiff
path: root/cmd/sata.c
diff options
context:
space:
mode:
authorYe Li <ye.li@nxp.com>2017-05-24 02:12:04 -0500
committerYe Li <ye.li@nxp.com>2017-05-24 03:21:53 -0500
commit2bfe86770d875de180f698a65371417d7cd67c43 (patch)
tree40b28a48a0b2a8b685dbac735fcfdc972fbb7d74 /cmd/sata.c
parenta4461cb2d050d7556fb163b8241a05a76ec42e69 (diff)
downloadu-boot-imx-2bfe86770d875de180f698a65371417d7cd67c43.zip
u-boot-imx-2bfe86770d875de180f698a65371417d7cd67c43.tar.gz
u-boot-imx-2bfe86770d875de180f698a65371417d7cd67c43.tar.bz2
MLK-14930-1 cmd: sata: Fix sata init and stop issue
When sata stop is executed, the sata_curr_device is not reset to -1, so any following sata commands will not initialize the sata again and cause problem. Additional, in sata init implementation, the sata_curr_device should be updated, otherwise sata will be initialized again when doing other sata commands like read/write/info/part/device. Signed-off-by: Ye Li <ye.li@nxp.com> (cherry picked from commit e2a66807f3573e8344dcd285dcb7d53f0e5fcf8e)
Diffstat (limited to 'cmd/sata.c')
-rw-r--r--cmd/sata.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/cmd/sata.c b/cmd/sata.c
index 4c53022..6672281 100644
--- a/cmd/sata.c
+++ b/cmd/sata.c
@@ -21,15 +21,21 @@ static int do_sata(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
int rc = 0;
- if (argc == 2 && strcmp(argv[1], "stop") == 0)
+ if (argc == 2 && strcmp(argv[1], "stop") == 0) {
+ sata_curr_device = -1;
return sata_stop();
+ }
if (argc == 2 && strcmp(argv[1], "init") == 0) {
if (sata_curr_device != -1)
sata_stop();
- return (sata_initialize() < 0) ?
- CMD_RET_FAILURE : CMD_RET_SUCCESS;
+ rc = sata_initialize();
+ if (rc == -1)
+ return CMD_RET_FAILURE;
+
+ sata_curr_device = rc;
+ return CMD_RET_SUCCESS;
}
/* If the user has not yet run `sata init`, do it now */