• Harald Nordgard-Hansen's avatar
    mtd: fix recovery after failed write-buffer operation in cfi_cmdset_0002.c · 070c3222
    Harald Nordgard-Hansen authored
    When working on a problem with some flash chips that lock up during
    write-buffer operations, I think there may be a bug in the linux
    handling of chips using cfi_cmdset_0002.c.
    
    The datasheets I have found for a number of these chips all specify that
    when aborting a write-buffer command, it is not enough to use the
    standard reset.  Rather a "write-to-buffer-reset command" is needed.
    This command is quite similar for all chips, the main variance seem to
    be if the final 0xF0 can go to any address or must go to addr_unlock1.
    
    The bug is then in the recovery handling when timing out at the end of
    do_write_buffer, where using the normal reset command is not sufficient.
    
    Without this change, if the write-buffer command fails then any
    following operations on the flash also fail.
    Signed-off-by: default avatarHarald Nordgard-Hansen <hhansen@pvv.org>
    Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
    070c3222
cfi_cmdset_0002.c 65 KB