cfi_cmdset_0001.c: Excessive erase suspends
Alexey Korolev
akorolev at infradead.org
Thu Apr 24 10:34:24 EDT 2008
Hi Anders,
Could you please try this patch on your platform.
It should solve the issue.
As I said before we also have a case which reproduces the issue.
After applying it the issue is not seen on test items which usually
fails. (However to prove that it is Ok
we need to execute whole bunch. It will be completed on next day)
diff -aurp linux-2.6.24-a/drivers/mtd/chips/cfi_cmdset_0001.c linux-2.6.24-b/drivers/mtd/chips/cfi_cmdset_0001.c
--- linux-2.6.24-a/drivers/mtd/chips/cfi_cmdset_0001.c 2008-02-11 08:51:11.000000000 +0300
+++ linux-2.6.24-b/drivers/mtd/chips/cfi_cmdset_0001.c 2008-04-24 18:13:00.000000000 +0400
@@ -874,6 +874,10 @@ static void put_chip(struct map_info *ma
do. */
map_write(map, CMD(0xd0), adr);
map_write(map, CMD(0x70), adr);
+ /* According to recomendations from h/w experts adding wait
+ of 100us just after resume solves the erase suspend issues
+ seen on some NOR parts. */
+ udelay(100);
chip->oldstate = FL_READY;
chip->state = FL_ERASING;
break;
Thanks,
Alexey
More information about the linux-mtd
mailing list