From bf2e9f98ae25edae6a49b151a8cacfe41fff01a4 Mon Sep 17 00:00:00 2001 From: Jaehoon Chung Date: Fri, 7 Jan 2011 13:33:05 +0900 Subject: [PATCH] s5p: cmd_mmc: fix wrong erase block count Signed-off-by: Jaehoon Chung --- common/cmd_mmc.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/common/cmd_mmc.c b/common/cmd_mmc.c index e1bc123..f05545e 100644 --- a/common/cmd_mmc.c +++ b/common/cmd_mmc.c @@ -276,7 +276,7 @@ int do_mmcops(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) int dev = simple_strtoul(argv[2], NULL, 10); u32 blk = simple_strtoul(argv[3], NULL, 16); u32 cnt = simple_strtoul(argv[4], NULL, 16); - u32 n, i, max_cnt; + u32 n, i, max_cnt = 10; struct mmc *mmc = find_mmc_device(dev); void *addr = (void *)CONFIG_SYS_SDRAM_BASE + 0x02200000; @@ -286,15 +286,13 @@ int do_mmcops(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) if (!mmc) return 1; - if (cnt < 10) - max_cnt = cnt; - else - max_cnt = 10; - printf("\nMMC erase: dev # %d, block # %d, count %d ... ", dev, blk, cnt); - for (i = 0; i < cnt; i++) { + for (i = 0; i < cnt; i += max_cnt) { + if (i < 10) + max_cnt = cnt; + n = mmc->block_dev.block_write(dev, blk, max_cnt, addr); blk += n; } -- 2.7.4