diff options
author | Mike Frysinger <vapier@gentoo.org> | 2012-03-04 22:35:50 -0500 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2012-03-04 22:35:50 -0500 |
commit | c4e932ce732b9d5f9d6e0a0559b7f6c8610a8ac9 (patch) | |
tree | 20ec7705475e9a364f1a1054c52b55d26d79ffe9 /drivers/mtd/spi/spi_flash.c | |
parent | a4ed3b653163367628d4ad173dfe3faf388da0ac (diff) | |
download | talos-obmc-uboot-c4e932ce732b9d5f9d6e0a0559b7f6c8610a8ac9.tar.gz talos-obmc-uboot-c4e932ce732b9d5f9d6e0a0559b7f6c8610a8ac9.zip |
sf: unify erase commands
Analysis of the flash drivers shows that they all use 0x20 if the erase
size is 4KiB, or 0xd8 if it's larger. So with this info in hand, we can
unify all the erase functionality in one place.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'drivers/mtd/spi/spi_flash.c')
-rw-r--r-- | drivers/mtd/spi/spi_flash.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c index f689cc47cf..4ab4e13b46 100644 --- a/drivers/mtd/spi/spi_flash.c +++ b/drivers/mtd/spi/spi_flash.c @@ -190,8 +190,7 @@ int spi_flash_cmd_wait_ready(struct spi_flash *flash, unsigned long timeout) CMD_READ_STATUS, STATUS_WIP); } -int spi_flash_cmd_erase(struct spi_flash *flash, u8 erase_cmd, - u32 offset, size_t len) +int spi_flash_cmd_erase(struct spi_flash *flash, u32 offset, size_t len) { u32 start, end, erase_size; int ret; @@ -209,7 +208,10 @@ int spi_flash_cmd_erase(struct spi_flash *flash, u8 erase_cmd, return ret; } - cmd[0] = erase_cmd; + if (erase_size == 4096) + cmd[0] = CMD_ERASE_4K; + else + cmd[0] = CMD_ERASE_64K; start = offset; end = start + len; |