linux/drivers/mtd
Alexey Korolev 998453fbf2 [MTD] [NOR] Fix -ETIMEO errors in CFI driver
Existing CFI driver has problems with excessive writes during erase.
If CFI driver does many writes during one erase cycle we may face the
messages with -ETIMEO error on erase operation.  It may cause the
following data corruption and kernel panics.

The reason of the issue is related to specifics of suspend operation:
if we write to flash during erase, suspend operation will cost some time
to erase procedure (for P30 it could be significant). In current version of
cfi driver the problem of many suspends is partially workarounded by adding
some time reserv to any operation (8xerase_time) but if we have many writes
during one erase the problem appears.

This patch detects the suspend and resets timer if suspend occured. It
has been well verified on different chips. No problems were found.
Could you please include the patch as it is simple and fixes bad issue.

Signed-off-by: Alexey Korolev <akorolev@infradead.org>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
2008-07-25 09:48:42 -04:00
..
chips [MTD] [NOR] Fix -ETIMEO errors in CFI driver 2008-07-25 09:48:42 -04:00
devices [MTD] [NAND] remove __PPC__ hardcoded address from DiskOnChip drivers 2008-07-11 18:21:54 +01:00
maps [MTD] [MAPS] Remove the bast-flash driver. 2008-07-11 18:20:59 +01:00
nand [MTD] [NAND] fsl_elbc_nand: fix section mismatch with CONFIG_MTD_OF_PARTS=y 2008-07-25 09:43:54 -04:00
onenand Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-07-11 14:36:25 +01:00
ubi UBI: add a message 2008-04-23 11:32:10 +01:00
Kconfig MTD/JFFS2: remove CVS keywords 2008-06-04 17:50:17 +01:00
Makefile [MTD] AR7 mtd partition map 2008-04-22 20:48:12 +01:00
afs.c MTD/JFFS2: remove CVS keywords 2008-06-04 17:50:17 +01:00
ar7part.c [MTD] Clean up AR7 partition map support 2008-04-23 09:39:49 +01:00
cmdlinepart.c [MTD] Fix const assignment in the MTD command line partitioning driver 2008-07-11 18:24:38 +01:00
ftl.c MTD/JFFS2: remove CVS keywords 2008-06-04 17:50:17 +01:00
inftlcore.c MTD/JFFS2: remove CVS keywords 2008-06-04 17:50:17 +01:00
inftlmount.c MTD/JFFS2: remove CVS keywords 2008-06-04 17:50:17 +01:00
mtd_blkdevs.c [MTD] Use list_for_each_entry[_safe] where appropriate. 2008-06-04 17:53:31 +01:00
mtdblock.c MTD/JFFS2: remove CVS keywords 2008-06-04 17:50:17 +01:00
mtdblock_ro.c MTD/JFFS2: remove CVS keywords 2008-06-04 17:50:17 +01:00
mtdchar.c [MTD] mtdchar.c remove shadowed variable warnings 2008-07-11 14:47:25 +01:00
mtdconcat.c MTD/JFFS2: remove CVS keywords 2008-06-04 17:50:17 +01:00
mtdcore.c [MTD] Use list_for_each_entry[_safe] where appropriate. 2008-06-04 17:53:31 +01:00
mtdcore.h [MTD] mtdcore.c: share syms with mtd_blkdev.c 2007-06-28 20:24:50 +01:00
mtdoops.c [MTD] mtdoops.c: make struct oops_cxt static again 2008-04-22 12:35:34 +01:00
mtdpart.c [MTD] Use list_for_each_entry[_safe] where appropriate. 2008-06-04 17:53:31 +01:00
mtdsuper.c Introduce path_put() 2008-02-14 21:13:33 -08:00
nftlcore.c MTD/JFFS2: remove CVS keywords 2008-06-04 17:50:17 +01:00
nftlmount.c MTD/JFFS2: remove CVS keywords 2008-06-04 17:50:17 +01:00
ofpart.c [MTD] mtd/ofpart.c: add MODULE_LICENSE 2008-04-22 15:53:52 +01:00
redboot.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-07-11 14:36:25 +01:00
rfd_ftl.c MTD/JFFS2: remove CVS keywords 2008-06-04 17:50:17 +01:00
ssfdc.c [MTD] Fix ssfdc blksize typo 2006-12-11 09:43:38 +00:00