diff mbox

[U-Boot,5/7,V4] mmc: Enhance mmcinfo command

Message ID 1386663654-14498-5-git-send-email-haijun.zhang@freescale.com
State Superseded
Delegated to: Pantelis Antoniou
Headers show

Commit Message

Haijun.Zhang Dec. 10, 2013, 8:20 a.m. UTC
Once mmc initialization was failed has_init should be cleared to 0,
prepare for the next initialization.

Once mmcinfo command failed, error should be reported instead of printing
incorrect mmc device information.

Error log:
=> mmcinfo
Device: FSL_SDHC
Manufacturer ID: 0
OEM: 0
Name: Tran Speed: 0
Rd Block Len: 0
MMC version 0.0
High Capacity: No
Capacity: 0 Bytes
Bus Width: 1-bit
=> mmcinfo
Device: FSL_SDHC
Manufacturer ID: 0
OEM: 0
Name: Tran Speed: 0
Rd Block Len: 0
MMC version 0.0
High Capacity: No
Capacity: 0 Bytes
Bus Width: 1-bit

Signed-off-by: Haijun Zhang <haijun.zhang@freescale.com>
---
changes for V4:
        - no changes

 common/cmd_mmc.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)
diff mbox

Patch

diff --git a/common/cmd_mmc.c b/common/cmd_mmc.c
index d4225f6..5af1e92 100644
--- a/common/cmd_mmc.c
+++ b/common/cmd_mmc.c
@@ -115,7 +115,8 @@  static int do_mmcinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	mmc = find_mmc_device(curr_device);
 
 	if (mmc) {
-		mmc_init(mmc);
+		if (mmc_init(mmc))
+			return 1;
 
 		print_mmcinfo(mmc);
 		return 0;
@@ -191,9 +192,10 @@  static int do_mmcops(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 
 		mmc->has_init = 0;
 
-		if (mmc_init(mmc))
+		if (mmc_init(mmc)) {
+			mmc->has_init = 0;
 			return 1;
-		else
+		} else
 			return 0;
 	} else if (strncmp(argv[1], "part", 4) == 0) {
 		block_dev_desc_t *mmc_dev;