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>
diff --git a/ichspi.c b/ichspi.c
index 9091230..3806529 100644
--- a/ichspi.c
+++ b/ichspi.c
@@ -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;
}
}