diff options
author | Tang Yuantian <Yuantian.Tang@nxp.com> | 2016-11-21 10:24:20 +0800 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2016-11-28 19:49:47 -0500 |
commit | aa6ab905b2833ea74ec92fc9d40d6245ff294a07 (patch) | |
tree | 71ab726c714b0f6fc0614dc3df29b7ae6c6d283b /common/sata.c | |
parent | 333ee16d042076669b36328dc06765a78c0676eb (diff) | |
download | u-boot-imx-aa6ab905b2833ea74ec92fc9d40d6245ff294a07.zip u-boot-imx-aa6ab905b2833ea74ec92fc9d40d6245ff294a07.tar.gz u-boot-imx-aa6ab905b2833ea74ec92fc9d40d6245ff294a07.tar.bz2 |
sata: fix sata command can not being executed bug
Commit d97dc8a0 separated the non-command code into its own file
which caused variable sata_curr_device can not be set to a correct
value.
Before commit d97dc8a0, variable sata_curr_device can be set
correctly in sata_initialize().
After commit d97dc8a0, sata_initialize() is moved out to its own file.
Accordingly, variable sata_curr_device is removed from sata_initialize()
too. This caused sata_curr_device never gets a chance to be set properly
which prevent other commands from being executed.
This patch sets variable sata_curr_device properly.
Fixes: d97dc8a0 (dm: sata: Separate the non-command code into its
own file)
Signed-off-by: Tang Yuantian <yuantian.tang@nxp.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'common/sata.c')
-rw-r--r-- | common/sata.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/common/sata.c b/common/sata.c index 88f08c9..42ff5c7 100644 --- a/common/sata.c +++ b/common/sata.c @@ -51,7 +51,7 @@ static unsigned long sata_bwrite(struct blk_desc *block_dev, lbaint_t start, int __sata_initialize(void) { - int rc; + int rc, ret = -1; int i; for (i = 0; i < CONFIG_SYS_SATA_MAX_DEVICE; i++) { @@ -71,12 +71,14 @@ int __sata_initialize(void) if (!rc) { rc = scan_sata(i); if (!rc && sata_dev_desc[i].lba > 0 && - sata_dev_desc[i].blksz > 0) + sata_dev_desc[i].blksz > 0) { part_init(&sata_dev_desc[i]); + ret = i; + } } } - return rc; + return ret; } int sata_initialize(void) __attribute__((weak, alias("__sata_initialize"))); |