diff options
author | Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> | 2009-06-17 10:13:42 +0000 |
---|---|---|
committer | Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> | 2009-06-17 10:13:42 +0000 |
commit | d168057805592ec441d74df3f2e8e454f9a2fde6 (patch) | |
tree | 89cc67a9b9f00075f5329f208674b2020b0c1034 | |
parent | 4e587905aeaf544c94e96f508a1b2e1294b31b0d (diff) | |
download | flashrom-d168057805592ec441d74df3f2e8e454f9a2fde6.tar.gz flashrom-d168057805592ec441d74df3f2e8e454f9a2fde6.tar.bz2 flashrom-d168057805592ec441d74df3f2e8e454f9a2fde6.zip |
Use spi_nbyte_program in ichspi.c
This shortens the code a lot and makes it more readable.
Corresponding to flashrom svn r600.
Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>
-rw-r--r-- | ichspi.c | 27 |
1 files changed, 7 insertions, 20 deletions
@@ -617,30 +617,17 @@ static int ich_spi_write_page(struct flashchip *flash, uint8_t * bytes, { int page_size = flash->page_size; uint32_t remaining = page_size; - int a; + int towrite; printf_debug("ich_spi_write_page: offset=%d, number=%d, buf=%p\n", offset, page_size, bytes); - for (a = 0; a < page_size; a += maxdata) { - if (remaining < maxdata) { - if (run_opcode - (curopcodes->opcode[0], - offset + (page_size - remaining), remaining, - &bytes[page_size - remaining]) != 0) { - printf_debug("Error writing"); - return 1; - } - remaining = 0; - } else { - if (run_opcode - (curopcodes->opcode[0], - offset + (page_size - remaining), maxdata, - &bytes[page_size - remaining]) != 0) { - printf_debug("Error writing"); - return 1; - } - remaining -= maxdata; + for (; remaining > 0; remaining -= towrite) { + towrite = min(remaining, maxdata); + if (spi_nbyte_program(offset + (page_size - remaining), + &bytes[page_size - remaining], towrite)) { + printf_debug("Error writing"); + return 1; } } |