diff mbox

[U-Boot,4/7,V4] mmc: Update the handling of returned erase block

Message ID 1386663654-14498-4-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
If the block range was not aligned, we try to align the range size,
The block range actually erased should be less or equal to the block
range sent. If error occured during erase procedure witch part of them
being erased, users should resend the block rang to
continue erase the rest of them.

Error return, zero return, has failed.

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

 common/cmd_mmc.c | 7 +++++++
 1 file changed, 7 insertions(+)
diff mbox

Patch

diff --git a/common/cmd_mmc.c b/common/cmd_mmc.c
index 67a94a7..d4225f6 100644
--- a/common/cmd_mmc.c
+++ b/common/cmd_mmc.c
@@ -397,6 +397,13 @@  static int do_mmcops(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 			BUG();
 		}
 
+		if (state == MMC_ERASE) {
+			printf("%d blocks %s: %s\n",
+				(n <= cnt) && (n > 0) ? n : 0, argv[1],
+				(n <= cnt) && (n > 0) ? "OK" : "ERROR");
+			return (n <= cnt) && (n > 0) ? 0 : 1;
+		}
+
 		printf("%d blocks %s: %s\n",
 				n, argv[1], (n == cnt) ? "OK" : "ERROR");
 		return (n == cnt) ? 0 : 1;