From: Jaehoon Chung Date: Fri, 7 Jan 2011 04:33:05 +0000 (+0900) Subject: s5p: cmd_mmc: fix wrong erase block count X-Git-Tag: v0.2~70 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bf2e9f98ae25edae6a49b151a8cacfe41fff01a4;p=kernel%2Fu-boot.git s5p: cmd_mmc: fix wrong erase block count Signed-off-by: Jaehoon Chung --- 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; }