diff options
| -rw-r--r-- | common/cmd_sf.c | 24 | ||||
| -rw-r--r-- | drivers/mtd/spi/spi_flash.c | 3 | 
2 files changed, 14 insertions, 13 deletions
| diff --git a/common/cmd_sf.c b/common/cmd_sf.c index 7f12a4948..19b0dc9f4 100644 --- a/common/cmd_sf.c +++ b/common/cmd_sf.c @@ -234,7 +234,7 @@ static int do_spi_flash_read_write(int argc, char * const argv[])  	unsigned long len;  	void *buf;  	char *endp; -	int ret; +	int ret = 1;  	if (argc < 4)  		return -1; @@ -264,19 +264,23 @@ static int do_spi_flash_read_write(int argc, char * const argv[])  	if (strcmp(argv[0], "update") == 0)  		ret = spi_flash_update(flash, offset, len, buf); -	else if (strcmp(argv[0], "read") == 0) -		ret = spi_flash_read(flash, offset, len, buf); -	else -		ret = spi_flash_write(flash, offset, len, buf); +	else if (strncmp(argv[0], "read", 4) == 0 || +			strncmp(argv[0], "write", 5) == 0) { +		int read; -	unmap_physmem(buf, len); +		read = strncmp(argv[0], "read", 4) == 0; +		if (read) +			ret = spi_flash_read(flash, offset, len, buf); +		else +			ret = spi_flash_write(flash, offset, len, buf); -	if (ret) { -		printf("SPI flash %s failed\n", argv[0]); -		return 1; +		printf("SF: %zu bytes @ %#x %s: %s\n", (size_t)len, (u32)offset, +			read ? "Read" : "Written", ret ? "ERROR" : "OK");  	} -	return 0; +	unmap_physmem(buf, len); + +	return ret == 0 ? 0 : 1;  }  static int do_spi_flash_erase(int argc, char * const argv[]) diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c index de6fd58e8..0e38f5948 100644 --- a/drivers/mtd/spi/spi_flash.c +++ b/drivers/mtd/spi/spi_flash.c @@ -124,9 +124,6 @@ int spi_flash_cmd_write_multi(struct spi_flash *flash, u32 offset,  		}  	} -	debug("SF: program %s %zu bytes @ %#x\n", -	      ret ? "failure" : "success", len, offset); -  	spi_release_bus(flash->spi);  	return ret;  } |