For Micron M29EW,20ms delay is needed after erase operation.

Signed-off-by: BeanHuo <b...@micron.com>
---
 drivers/mtd/chips/cfi_cmdset_0002.c |   11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c 
b/drivers/mtd/chips/cfi_cmdset_0002.c
index 5a4bfe3..9b0de91 100644
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
@@ -509,6 +509,16 @@ static void cfi_fixup_m29ew_delay_after_resume(struct 
cfi_private *cfi)
                cfi_udelay(500);
 }
 
+static void cfi_fixup_m29ew_delay_after_erase(struct cfi_private *cfi) 
+{
+       /*
+        * Resolving the Delay After ERASE Issue @low temperature.
+        * 20ms delay is needed after erase operation.
+        */
+       if (is_m29ew(cfi))
+               cfi_udelay(20000);
+}
+
 struct mtd_info *cfi_cmdset_0002(struct map_info *map, int primary)  {
        struct cfi_private *cfi = map->fldrv_priv; @@ -2397,6 +2407,7 @@ static 
int __xipram do_erase_oneblock(struct map_info *map, struct flchip *chip,
                ret = -EIO;
        }
 
+       cfi_fixup_m29ew_delay_after_erase(cfi);
        chip->state = FL_READY;
        DISABLE_VPP(map);
        put_chip(map, chip, adr);
--
1.7.9.5
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to