sata: fix sata command can not being executed bug
Commitd97dc8a0
separated the non-command code into its own file which caused variable sata_curr_device can not be set to a correct value. Before commitd97dc8a0
, variable sata_curr_device can be set correctly in sata_initialize(). After commitd97dc8a0
, 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>
This commit is contained in:
parent
333ee16d04
commit
aa6ab905b2
@ -32,9 +32,12 @@ static int do_sata(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* If the user has not yet run `sata init`, do it now */
|
/* If the user has not yet run `sata init`, do it now */
|
||||||
if (sata_curr_device == -1)
|
if (sata_curr_device == -1) {
|
||||||
if (sata_initialize())
|
rc = sata_initialize();
|
||||||
return 1;
|
if (rc == -1)
|
||||||
|
return rc;
|
||||||
|
sata_curr_device = rc;
|
||||||
|
}
|
||||||
|
|
||||||
switch (argc) {
|
switch (argc) {
|
||||||
case 0:
|
case 0:
|
||||||
|
@ -51,7 +51,7 @@ static unsigned long sata_bwrite(struct blk_desc *block_dev, lbaint_t start,
|
|||||||
|
|
||||||
int __sata_initialize(void)
|
int __sata_initialize(void)
|
||||||
{
|
{
|
||||||
int rc;
|
int rc, ret = -1;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < CONFIG_SYS_SATA_MAX_DEVICE; i++) {
|
for (i = 0; i < CONFIG_SYS_SATA_MAX_DEVICE; i++) {
|
||||||
@ -71,12 +71,14 @@ int __sata_initialize(void)
|
|||||||
if (!rc) {
|
if (!rc) {
|
||||||
rc = scan_sata(i);
|
rc = scan_sata(i);
|
||||||
if (!rc && sata_dev_desc[i].lba > 0 &&
|
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]);
|
part_init(&sata_dev_desc[i]);
|
||||||
|
ret = i;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return rc;
|
return ret;
|
||||||
}
|
}
|
||||||
int sata_initialize(void) __attribute__((weak, alias("__sata_initialize")));
|
int sata_initialize(void) __attribute__((weak, alias("__sata_initialize")));
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user