[U-Boot] [PATCH v2] sata: Fixes:d97dc8a0(Separate the non-command code into its own file)

From: Tang Yuantian Yuantian.Tang@nxp.com
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, 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 command from being executed.
This patch sets variable sata_curr_device properly.
Signed-off-by: Tang Yuantian yuantian.tang@nxp.com --- v2: - refined this patch and updated the commit title and message
cmd/sata.c | 9 ++++++--- common/sata.c | 8 +++++--- 2 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/cmd/sata.c b/cmd/sata.c index d18b523..f56622a 100644 --- a/cmd/sata.c +++ b/cmd/sata.c @@ -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 (sata_curr_device == -1) - if (sata_initialize()) - return 1; + if (sata_curr_device == -1) { + rc = sata_initialize(); + if (rc == -1) + return rc; + sata_curr_device = rc; + }
switch (argc) { case 0: 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")));

Hi Tang,
On 16 November 2016 at 23:54, yuantian.tang@nxp.com wrote:
From: Tang Yuantian Yuantian.Tang@nxp.com
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, 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 command from being executed.
This patch sets variable sata_curr_device properly.
Signed-off-by: Tang Yuantian yuantian.tang@nxp.com
v2:
- refined this patch and updated the commit title and message
The 'Fixes' tag should go at the end next to your sign-off. See this commit for example:
commit 623c5cc4ad4e992b53a227c2391eface5aaecc92 Author: Simon Glass sjg@chromium.org Date: Sun Nov 6 16:07:40 2016 -0700
x86: Correct a build warning in x86 tables
There is a build warning for three x86 boards since write_smbios_table_wrapper() is not used. Fix it.
Fixes: e824cf3f (smbios: Allow compilation on 64bit systems) Signed-off-by: Simon Glass sjg@chromium.org
Regards, Simon

Ok, will resend this patch.
Thanks, Yuantian
-----Original Message----- From: sjg@google.com [mailto:sjg@google.com] On Behalf Of Simon Glass Sent: Saturday, November 19, 2016 3:34 AM To: Y.T. Tang yuantian.tang@nxp.com Cc: Bin Meng bmeng.cn@gmail.com; U-Boot Mailing List <u- boot@lists.denx.de>; S.H. Xie shaohui.xie@nxp.com Subject: Re: [PATCH v2] sata: Fixes:d97dc8a0(Separate the non-command code into its own file)
Hi Tang,
On 16 November 2016 at 23:54, yuantian.tang@nxp.com wrote:
From: Tang Yuantian Yuantian.Tang@nxp.com
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, 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 command from being executed.
This patch sets variable sata_curr_device properly.
Signed-off-by: Tang Yuantian yuantian.tang@nxp.com
v2:
- refined this patch and updated the commit title and message
The 'Fixes' tag should go at the end next to your sign-off. See this commit for example:
commit 623c5cc4ad4e992b53a227c2391eface5aaecc92 Author: Simon Glass sjg@chromium.org Date: Sun Nov 6 16:07:40 2016 -0700
x86: Correct a build warning in x86 tables There is a build warning for three x86 boards since write_smbios_table_wrapper() is not used. Fix it. Fixes: e824cf3f (smbios: Allow compilation on 64bit systems) Signed-off-by: Simon Glass <sjg@chromium.org>
Regards, Simon
participants (3)
-
Simon Glass
-
Y.T. Tang
-
yuantian.tang@nxp.com