[PATCH] cfi_flash: show progress while during erase

Franck Jullien franck.jullien at gmail.com
Mon May 26 11:20:52 PDT 2014


Sascha,

Any reason why you removed the progress bar here in this commit:
2749fbac48374b5f5ced ?

Franck.

2014-05-26 20:12 GMT+02:00 Franck Jullien <franck.jullien at gmail.com>:
> 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