diff options
| -rw-r--r-- | drivers/mtd/spi/spansion.c | 7 | 
1 files changed, 3 insertions, 4 deletions
| diff --git a/drivers/mtd/spi/spansion.c b/drivers/mtd/spi/spansion.c index d6c1a5f9d..d9d794a9a 100644 --- a/drivers/mtd/spi/spansion.c +++ b/drivers/mtd/spi/spansion.c @@ -262,7 +262,6 @@ int spansion_erase(struct spi_flash *flash, u32 offset, size_t len)  		return -1;  	} -	len /= sector_size;  	cmd[0] = CMD_S25FLXX_SE;  	cmd[2] = 0x00;  	cmd[3] = 0x00; @@ -274,8 +273,8 @@ int spansion_erase(struct spi_flash *flash, u32 offset, size_t len)  	}  	ret = 0; -	for (actual = 0; actual < len; actual++) { -		cmd[1] = (offset / sector_size) + actual; +	for (actual = 0; actual < len; actual += sector_size) { +		cmd[1] = (offset + actual) >> 16;  		ret = spi_flash_cmd(flash->spi, CMD_S25FLXX_WREN, NULL, 0);  		if (ret < 0) { @@ -298,7 +297,7 @@ int spansion_erase(struct spi_flash *flash, u32 offset, size_t len)  	}  	debug("SF: SPANSION: Successfully erased %u bytes @ 0x%x\n", -	      len * sector_size, offset); +	      len, offset);  	spi_release_bus(flash->spi);  	return ret; |