Boris Brezillon
90d6176333
mtd: rawnand: marvell: Fix read logic for layouts with ->nchunks > 2
...
The code is doing monolithic reads for all chunks except the last one
which is wrong since a monolithic read will issue the
READ0+ADDRS+READ_START sequence. It not only takes longer because it
forces the NAND chip to reload the page content into its internal
cache, but by doing that we also reset the column pointer to 0, which
means we'll always read the first chunk instead of moving to the next
one.
Rework the code to do a monolithic read only for the first chunk,
then switch to naked reads for all intermediate chunks and finally
issue a last naked read for the last chunk.
Fixes: 02f26ecf8c mtd: nand: add reworked Marvell NAND controller driver
Cc: stable@vger.kernel.org
Reported-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
Tested-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Acked-by: Miquel Raynal <miquel.raynal@bootlin.com>
2018-05-14 14:46:20 +02:00
..
chips
mtd: cfi: cmdset_0002: Do not allow read/write to suspend erase block.
2018-04-24 17:42:15 +02:00
devices
mtd: Stop updating erase_info->state and calling mtd_erase_callback()
2018-03-21 09:50:56 +01:00
lpddr
mtd: Stop updating erase_info->state and calling mtd_erase_callback()
2018-03-21 09:50:56 +01:00
maps
mtd: physmap_of: update struct map_info's swap as per map requirement
2018-03-29 09:31:37 +02:00
nand
mtd: rawnand: marvell: Fix read logic for layouts with ->nchunks > 2
2018-05-14 14:46:20 +02:00
parsers
mtd: sharpslpart: make local function sharpsl_nand_cleanup_ftl() static
2018-01-06 15:06:23 +01:00
spi-nor
mtd: spi-nor: cadence-quadspi: Fix page fault kernel panic
2018-04-23 21:42:56 +02:00
tests
mtd: tests: check erase block count in page test
2018-03-21 09:50:57 +01:00
ubi
This pull request contains updates for both UBI and UBIFS:
2018-04-11 16:39:34 -07:00
afs.c
ar7part.c
bcm47xxpart.c
bcm63xxpart.c
cmdlinepart.c
ftl.c
mtd: ftl: Use DIV_ROUND_UP()
2018-03-29 09:36:01 +02:00
inftlcore.c
inftlmount.c
mtd: Unconditionally update ->fail_addr and ->addr in part_erase()
2018-03-15 18:22:26 +01:00
Kconfig
mtd: Move onenand code base to drivers/mtd/nand/onenand
2018-03-15 15:40:37 +01:00
Makefile
mtd: Move onenand code base to drivers/mtd/nand/onenand
2018-03-15 15:40:37 +01:00
mtd_blkdevs.c
block: Use blk_queue_flag_*() in drivers instead of queue_flag_*()
2018-03-08 14:13:48 -07:00
mtdblock.c
mtd: Unconditionally update ->fail_addr and ->addr in part_erase()
2018-03-15 18:22:26 +01:00
mtdblock_ro.c
mtdchar.c
MTD changes:
2018-04-06 12:15:41 -07:00
mtdconcat.c
mtd: Stop updating erase_info->state and calling mtd_erase_callback()
2018-03-21 09:50:56 +01:00
mtdcore.c
mtd: Fix some function description mismatches in mtdcore.c
2018-03-29 09:31:54 +02:00
mtdcore.h
mtdoops.c
mtd: Unconditionally update ->fail_addr and ->addr in part_erase()
2018-03-15 18:22:26 +01:00
mtdpart.c
mtd: rename "ofpart" parser to "fixed-partitions" as it fits it better
2018-03-27 09:11:24 +02:00
mtdsuper.c
Rename superblock flags (MS_xyz -> SB_xyz)
2017-11-27 13:05:09 -08:00
mtdswap.c
mtd: Unconditionally update ->fail_addr and ->addr in part_erase()
2018-03-15 18:22:26 +01:00
nftlcore.c
nftlmount.c
mtd: nftl: use %*ph to print small buffer
2018-03-21 09:50:56 +01:00
ofpart.c
mtd: ofpart: add of_match_table with "fixed-partitions"
2018-03-27 09:11:31 +02:00
redboot.c
rfd_ftl.c
mtd: Unconditionally update ->fail_addr and ->addr in part_erase()
2018-03-15 18:22:26 +01:00
sm_ftl.c
Core changes:
2018-04-04 22:11:36 +02:00
sm_ftl.h
mtd: Stop assuming mtd_erase() is asynchronous
2018-03-15 18:21:07 +01:00
ssfdc.c