mtd: fix hang-up in cfi erase and read contention
authorTadashi Abe <tabe@mvista.com>
Thu, 19 May 2011 06:58:15 +0000 (15:58 +0900)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Wed, 25 May 2011 01:11:11 +0000 (02:11 +0100)
commit100f2341e305f98de3aa12fb472771ab029cbda7
tree40cc6edf73cf06b6392a18fd496cb9dc071c98d4
parent52534f2dba5d033c0c33e515faa2767d7e8e986a
mtd: fix hang-up in cfi erase and read contention

cfi erase command hangs up when erase and read contention occurs.
If read runs at the same address as erase operation, read issues
Erase-Suspend via get_chip() and the erase goes into sleep in wait queue.
But in this case, read operation exits by time-out without waking it up.

I think the other variants (0001, 0020 and lpddr) have the same problem too.
Tested and verified the patch only on CFI-0002 flash, though.

Signed-off-by: Tadashi Abe <tabe@mvista.com>
Acked-by: Joakim Tjernlund <joakim.tjernlund@transmode.se>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/mtd/chips/cfi_cmdset_0001.c
drivers/mtd/chips/cfi_cmdset_0002.c
drivers/mtd/chips/cfi_cmdset_0020.c
drivers/mtd/lpddr/lpddr_cmds.c