Fix do_div() usage in nand process output
PATCH 1/1 Fix do_div() usage in nand process output
Fix usage of do_div() in nand erase|read|write process output.
The last patch to nand_util.c introduced do_div() instead of libgcc's implementation. But do_div() returns the quotient in its first macro parameter and not as result.
---
commit 72ce73aff517363e9fc9fe3ce8c1b21e47ab8fe0
tree 4b241a66240bf37f48cf72c0dc0b19ec3d0d4803
parent 1d9e31e04911a6bb7cc66dd91132c699101c32e2
author Matthias Fuchs <[email protected]> Tue, 11 Sep 2007 16:52:29 +0200 committer Matthias Fuchs <[email protected]> Tue, 11 Sep 2007 16:52:29 +0200
common/cmd_nand.c | 2 +- drivers/nand/nand_util.c | 21 ++++++++++++++++----- 2 files changed, 17 insertions(+), 6 deletions(-)
common/cmd_nand.c +1 -1
@@ -452,7 +452,7 @@ U_BOOT_CMD(nand, 5, 1, do_nand,"info - show available NAND devices\n" "nand device [dev] - show or set current device\n" "nand read[.jffs2] - addr off|partition size\n" -"nand write[.jffs2] - addr off|partiton size - read/write `size' bytes starting\n" +"nand write[.jffs2] - addr off|partition size - read/write `size' bytes starting\n" " at offset `off' to/from memory address `addr'\n" "nand erase [clean] [off size] - erase `size' bytes from\n" " offset `off' (entire device if not specified)\n"
drivers/nand/nand_util.c +16 -5
@@ -210,9 +210,12 @@ int nand_erase_opts(nand_info_t *meminfo, const nand_erase_options_t *opts)if (!opts->quiet) {unsigned long long n =(unsigned long long ) - (erase.addr+meminfo->erasesize-opts->offset) - *100 ; -int percent = (int )do_div (n, erase_length); + (erase.addr + meminfo->erasesize - opts->offset) + *100 ; +int percent; + +do_div (n, erase_length); + percent = (int )n;/* output progress message only at whole percent * steps to reduce the number of messages printed
@@ -478,7 +481,11 @@ int nand_write_opts(nand_info_t *meminfo, const nand_write_options_t *opts)if (!opts->quiet) {unsigned long long n = (unsigned long long ) (opts->length-imglen) *100 ; -int percent = (int )do_div (n, opts->length); +int percent; + +do_div (n, opts->length); + percent = (int )n; +/* output progress message only at whole percent * steps to reduce the number of messages printed * on (slow) serial consoles
@@ -653,7 +660,11 @@ int nand_read_opts(nand_info_t *meminfo, const nand_read_options_t *opts)if (!opts->quiet) {unsigned long long n = (unsigned long long ) (opts->length-imglen) *100 ; -int percent = (int )do_div (n ,opts->length); +int percent; + +do_div (n, opts->length); + percent = (int )n; +/* output progress message only at whole percent * steps to reduce the number of messages printed * on (slow) serial consoles
Wolfgang Denk
AppliedPATCH 1/1 Fix do_div() usage in nand process output
Quoted 5 lines · In message <[email protected]> you wrote:
Fix usage of
do_div()in nand erase|read|write process output.The last patch to
nand_util.cintroduceddo_div()instead of libgcc's implementation. Butdo_div()returns the quotient in its first macro parameter and not as result.
Applied, thanks.
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de Q: How many DEC repairman does it take to fix a flat ? A: Five; four to hold the car up and one to swap tires.