Author: hailfinger Date: 2009-06-17 12:13:42 +0200 (Wed, 17 Jun 2009) New Revision: 600
Modified: trunk/ichspi.c Log: Use spi_nbyte_program in ichspi.c. This shortens the code a lot and makes it more readable.
Signed-off-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net Acked-by: Ronald G. Minnich rminnich@gmail.com
Modified: trunk/ichspi.c =================================================================== --- trunk/ichspi.c 2009-06-16 23:15:10 UTC (rev 599) +++ trunk/ichspi.c 2009-06-17 10:13:42 UTC (rev 600) @@ -617,30 +617,17 @@ { 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; } }