summaryrefslogtreecommitdiffstats
path: root/drivers/mtd/spi/spi_flash.c
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2012-03-04 22:35:50 -0500
committerMike Frysinger <vapier@gentoo.org>2012-03-04 22:35:50 -0500
commitc4e932ce732b9d5f9d6e0a0559b7f6c8610a8ac9 (patch)
tree20ec7705475e9a364f1a1054c52b55d26d79ffe9 /drivers/mtd/spi/spi_flash.c
parenta4ed3b653163367628d4ad173dfe3faf388da0ac (diff)
downloadtalos-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.c8
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;
OpenPOWER on IntegriCloud