linux-stable/drivers/mtd
Harald Nordgard-Hansen 070c32223a mtd: fix recovery after failed write-buffer operation in cfi_cmdset_0002.c
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: Harald Nordgard-Hansen <hhansen@pvv.org>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
2012-12-03 16:36:52 +02:00
..
chips mtd: fix recovery after failed write-buffer operation in cfi_cmdset_0002.c 2012-12-03 16:36:52 +02:00
devices mtd: m25p80: modify info for Micron N25Q128 2012-12-03 16:36:51 +02:00
lpddr mtd: lpddr: replace open-coded ARRAY_SIZE with macro 2012-05-13 22:47:31 -05:00
maps mtd: fix a number of checkpatch complaints 2012-11-22 12:16:28 +02:00
nand mtd: nand: onfi need to be probed in 8 bits mode 2012-12-03 16:36:52 +02:00
onenand mtd: remove use of __devexit 2012-11-22 12:07:03 +02:00
tests mtd: Fix typo mtd/tests 2012-11-18 16:03:37 +02:00
ubi This pull request contains the UBI fastmap support implemented by Richard 2012-10-08 20:40:45 +09:00
afs.c mtd: introduce mtd_read interface 2012-01-09 18:25:19 +00:00
ar7part.c mtd: use SQUASHFS_MAGIC from uapi/linux/magic.h 2012-11-21 17:06:44 +02:00
bcm47xxpart.c mtd: bcm47part driver for BCM47XX chipsets 2012-09-29 15:32:31 +01:00
bcm63xxpart.c mtd: bcm63xxpart: use correct printk format for partitions 2012-11-21 17:15:06 +02:00
cmdlinepart.c mtd: cmdlinepart: fix the overflow of big mtd partitions 2012-11-15 19:50:30 +02:00
ftl.c mtd: do not use mtd->sync directly 2012-01-09 18:26:21 +00:00
inftlcore.c mtd: add leading underscore to all mtd functions 2012-03-27 00:20:01 +01:00
inftlmount.c mtd: introduce mtd_block_markbad interface 2012-01-09 18:25:48 +00:00
Kconfig mtd: bcm47part driver for BCM47XX chipsets 2012-09-29 15:32:31 +01:00
Makefile mtd: bcm47part driver for BCM47XX chipsets 2012-09-29 15:32:31 +01:00
mtd_blkdevs.c mtd: mtd_blkdevs: Replace request handler kthread with a workqueue 2012-11-21 17:02:23 +02:00
mtdblock.c mtd: mtdblock: call mtd_sync() only if opened for write 2012-03-27 00:11:11 +01:00
mtdblock_ro.c mtd: introduce mtd_write interface 2012-01-09 18:25:20 +00:00
mtdchar.c mtd: Disable mtdchar mmap on MMU systems 2012-10-09 15:08:42 +01:00
mtdconcat.c mtd: unify initialization of erase_info->fail_addr 2012-03-27 01:02:24 +01:00
mtdcore.c UAPI Disintegration 2012-10-09 2012-10-09 15:04:25 +01:00
mtdcore.h mtd: hide parse_mtd_partitions 2011-09-11 15:02:13 +03:00
mtdoops.c mtdoops: don't erase flash at each boot 2012-11-15 15:37:51 +02:00
mtdpart.c UAPI Disintegration 2012-10-09 2012-10-09 15:04:25 +01:00
mtdsuper.c VFS: Pass mount flags to sget() 2012-07-14 16:38:34 +04:00
mtdswap.c mtd: do not use mtd->block_markbad directly 2012-01-09 18:26:26 +00:00
nftlcore.c mtd: nftlcore: remove out-of-date and now irrelevant piece of code 2012-03-27 00:24:03 +01:00
nftlmount.c mtd: introduce mtd_block_markbad interface 2012-01-09 18:25:48 +00:00
ofpart.c mtd: ofpart: Replicate mtd cmdline "lk" option with device tree "lock" property 2012-11-22 10:14:22 +02:00
redboot.c mtd: redboot: remove useless code 2012-03-27 00:24:14 +01:00
rfd_ftl.c mtd: do not use mtd->sync directly 2012-01-09 18:26:21 +00:00
sm_ftl.c mtd: kill MTD_NAND_VERIFY_WRITE 2012-09-29 15:00:46 +01:00
sm_ftl.h
ssfdc.c mtd: introduce mtd_block_isbad interface 2012-01-09 18:25:47 +00:00