From de75a5ed7f0f1b05e32a97423723db7a0719a2f2 Mon Sep 17 00:00:00 2001 From: Carl-Daniel Hailfinger Date: Thu, 1 Oct 2009 13:16:32 +0000 Subject: Introduce proper error checking for SPI programming Corresponding to flashrom svn r739. Signed-off-by: Carl-Daniel Hailfinger Acked-by: Stefan Reinauer --- sb600spi.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'sb600spi.c') diff --git a/sb600spi.c b/sb600spi.c index 5965b3b..87f1cc1 100644 --- a/sb600spi.c +++ b/sb600spi.c @@ -48,9 +48,9 @@ int sb600_spi_read(struct flashchip *flash, uint8_t *buf, int start, int len) /* FIXME: SB600 can write 5 bytes per transaction. */ int sb600_spi_write_1(struct flashchip *flash, uint8_t *buf) { - int rc = 0, i; + int i; int total_size = flash->total_size * 1024; - int result; + int result = 0; spi_disable_blockprotect(); /* Erase first */ @@ -63,10 +63,10 @@ int sb600_spi_write_1(struct flashchip *flash, uint8_t *buf) printf("Programming flash"); for (i = 0; i < total_size; i++, buf++) { - result = spi_byte_program(i, *buf); + result = spi_nbyte_program(i, buf, 1); if (result) { - // spi_byte_program reported the error for us already - printf_debug("... continuing anyway.\n"); + fprintf(stderr, "Write error!\n"); + return result; } /* wait program complete. */ @@ -76,7 +76,7 @@ int sb600_spi_write_1(struct flashchip *flash, uint8_t *buf) ; } printf(" done.\n"); - return rc; + return result; } static void reset_internal_fifo_pointer(void) -- cgit v1.1