Message ID | A765B125120D1346A63912DDE6D8B6315DB7BE@NTXXIAMBX02.xacn.micron.com |
---|---|
State | Changes Requested |
Headers | show |
On Monday, September 01, 2014 11:21 AM, Bean Huo wrote: > > For Micron M29EW,20ms delay is needed after erase operation. You already added the reason to cfi_fixup_m29ew_delay_after_erase(). However, please add the comment to this commit message. > > Signed-off-by: BeanHuo <bpqw@micron.com> BeanHuo/Bean Huo Others look good. Best regards, Jingoo Han > --- > 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
Hi, On Mon, Sep 1, 2014 at 4:20 AM, bpqw <bpqw@micron.com> wrote: > For Micron M29EW,20ms delay is needed after erase operation. Is there a datasheet/application note/technical note from Micron describing this issue? Like the TN-13-07 for the other M29EW fixes? Are all M29EW types affected? Thanks, Christian > > Signed-off-by: BeanHuo <bpqw@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 > > ______________________________________________________ > Linux MTD discussion mailing list > http://lists.infradead.org/mailman/listinfo/linux-mtd/
On Mon, Sep 1, 2014 at 4:20 AM, bpqw <bpqw@micron.com> wrote: > For Micron M29EW,20ms delay is needed after erase operation. > > Signed-off-by: BeanHuo <bpqw@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 > > ______________________________________________________ > Linux MTD discussion mailing list > http://lists.infradead.org/mailman/listinfo/linux-mtd/
On Mon, Sep 1, 2014 at 4:20 AM, bpqw <bpqw@micron.com> wrote: > For Micron M29EW,20ms delay is needed after erase operation. > > Signed-off-by: BeanHuo <bpqw@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, Missing line break? The patch does not apply. Christian > 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 > > ______________________________________________________ > Linux MTD discussion mailing list > http://lists.infradead.org/mailman/listinfo/linux-mtd/
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;
For Micron M29EW,20ms delay is needed after erase operation. Signed-off-by: BeanHuo <bpqw@micron.com> --- drivers/mtd/chips/cfi_cmdset_0002.c | 11 +++++++++++ 1 file changed, 11 insertions(+) } + cfi_fixup_m29ew_delay_after_erase(cfi); chip->state = FL_READY; DISABLE_VPP(map); put_chip(map, chip, adr); -- 1.7.9.5