[PATCH] cfi_flash: show progress while during erase
Franck Jullien
franck.jullien at gmail.com
Mon May 26 11:12:32 PDT 2014
Signed-off-by: Franck Jullien <franck.jullien at gmail.com>
---
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
More information about the barebox
mailing list