[PATCH] Bug in m25p80.c during whole-chip erase

Mike Frysinger vapier.adi at gmail.com
Tue Apr 28 11:58:27 EDT 2009


On Tue, Apr 28, 2009 at 09:40, Steven A. Falco wrote:
> Mike Frysinger wrote:
>> On Mon, Apr 27, 2009 at 17:10, Steven A. Falco wrote:
>>> There is a logic error in "whole chip erase" for the m25p80 family.  If
>>> the whole device is successfully erased, erase_chip() will return 0, and
>>> the code will fall through to the "else" clause, and do sector-by-sector
>>> erase in addition to the whole-chip erase.  This patch corrects that.
>>>
>>> Also, the MAX_READY_WAIT_COUNT is insufficient for an m25p16 connected
>>> to a 400 MHz powerpc.  Increasing it allows me to successfully program
>>> the device on my board.
>>
>> in general, trying to set timeouts "close" to the spec gains nothing
>> with spi flash devices.  the timeout limit is hit only when an error
>> occurs, and errors should not occur during the normal run of things.
>> on the other side, having a timeout be wrongly hit when the device is
>> operating correctly is a much worse situation to be in.
>
> Right.  This chip takes 13 seconds (typical) to bulk erase, according to
> the Numonyx data sheet.  So increasing the timeout to account for such
> a slow part is necessary, and allows me to successfully erase the part.
>
> Are there any changes you'd like to see in this patch, or is it ok as
> written?

changes look fine to me, but i'm not in any position to get things
merged for you ;)
-mike



More information about the linux-mtd mailing list