Signed-off-by: Franck Jullien <franck.jullien@xxxxxxxxx> --- drivers/mtd/nor/cfi_flash.c | 12 ++++++++++-- 1 files changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/mtd/nor/cfi_flash.c b/drivers/mtd/nor/cfi_flash.c index 3d3d231..f2f52e1 100644 --- a/drivers/mtd/nor/cfi_flash.c +++ b/drivers/mtd/nor/cfi_flash.c @@ -470,7 +470,7 @@ flash_sect_t find_sector (struct flash_info *info, ulong addr) return sector; } -static int cfi_erase(struct flash_info *finfo, size_t count, loff_t offset) +static int cfi_erase(struct flash_info *finfo, size_t count, loff_t offset, int verbose) { unsigned long start, end; int i, ret = 0; @@ -481,17 +481,25 @@ static int cfi_erase(struct flash_info *finfo, size_t count, loff_t offset) end = find_sector(finfo, (unsigned long)finfo->base + offset + count - 1); + if (verbose) + init_progression_bar(end - start); + for (i = start; i <= end; i++) { ret = finfo->cfi_cmd_set->flash_erase_one(finfo, i); if (ret) goto out; + if (verbose) + show_progress(i - start); + if (ctrlc()) { ret = -EINTR; goto out; } } out: + if (verbose) + putchar('\n'); return ret; } @@ -933,7 +941,7 @@ static int cfi_mtd_erase(struct mtd_info *mtd, struct erase_info *instr) struct flash_info *info = container_of(mtd, struct flash_info, mtd); int ret; - ret = cfi_erase(info, instr->len, instr->addr); + ret = cfi_erase(info, instr->len, instr->addr, 1); if (ret) { instr->state = MTD_ERASE_FAILED; -- 1.7.1 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox