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 | 249f9772b1d927e121916d4f2a1ff0a2ae5af73d (patch) | |
tree | 89cc67a9b9f00075f5329f208674b2020b0c1034 /ichspi.c | |
parent | a77598f497589d43c0a0403f250c5d73670b01ea (diff) | |
download | flashrom-249f9772b1d927e121916d4f2a1ff0a2ae5af73d.zip flashrom-249f9772b1d927e121916d4f2a1ff0a2ae5af73d.tar.gz |
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>
Diffstat (limited to 'ichspi.c')
-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; } } |