linux-uconsole/drivers/mtd/chips
Tokunori Ikegami c1a7fe4866 mtd: cfi_cmdset_0002: Use chip_good() to retry in do_write_oneword()
commit 37c673ade3 upstream.

As reported by the OpenWRT team, write requests sometimes fail on some
platforms.
Currently to check the state chip_ready() is used correctly as described by
the flash memory S29GL256P11TFI01 datasheet.
Also chip_good() is used to check if the write is succeeded and it was
implemented by the commit fb4a90bfcd ("[MTD] CFI-0002 - Improve error
checking").
But actually the write failure is caused on some platforms and also it can
be fixed by using chip_good() to check the state and retry instead.
Also it seems that it is caused after repeated about 1,000 times to retry
the write one word with the reset command.
By using chip_good() to check the state to be done it can be reduced the
retry with reset.
It is depended on the actual flash chip behavior so the root cause is
unknown.

Cc: Chris Packham <chris.packham@alliedtelesis.co.nz>
Cc: Joakim Tjernlund <Joakim.Tjernlund@infinera.com>
Cc: linux-mtd@lists.infradead.org
Cc: stable@vger.kernel.org
Reported-by: Fabio Bettoni <fbettoni@gmail.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Tokunori Ikegami <ikegami.t@gmail.com>
[vigneshr@ti.com: Fix a checkpatch warning]
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-10-01 08:26:02 +02:00
..
cfi_cmdset_0001.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
cfi_cmdset_0002.c mtd: cfi_cmdset_0002: Use chip_good() to retry in do_write_oneword() 2019-10-01 08:26:02 +02:00
cfi_cmdset_0020.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
cfi_probe.c mtd: cfi: Add early fixup for S70GL02GS 2018-05-04 09:52:38 +02:00
cfi_util.c
chipreg.c
fwh_lock.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
gen_probe.c mtd: Use kasprintf() instead of fixed buffer formatting 2018-07-07 10:53:45 +02:00
jedec_probe.c MTD changes: 2018-04-06 12:15:41 -07:00
Kconfig mtd: Make Kconfig formatting consistent 2018-07-19 23:12:06 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
map_absent.c
map_ram.c mtd: Stop updating erase_info->state and calling mtd_erase_callback() 2018-03-21 09:50:56 +01:00
map_rom.c mtd: remove the get_unmapped_area method 2017-11-13 21:39:18 +01:00