linux-stable/drivers/mtd/nand/raw
Miquel Raynal a2ee41fd95 mtd: rawnand: marvell: fix command xtype in BCH write hook
One layout supported by the Marvell NAND controller supports NAND pages
of 2048 bytes, all handled in one single chunk when using BCH with a
strength of 4-bit per 512 bytes. In this case, instead of the generic
XTYPE_WRITE_DISPATCH/XTYPE_LAST_NAKED_RW couple, the controller expects
to receive XTYPE_MONOLITHIC_RW.

This fixes problems at boot like:

[    1.315475] Scanning device for bad blocks
[    3.203108] marvell-nfc f10d0000.flash: Timeout waiting for RB signal
[    3.209564] nand_bbt: error while writing BBT block -110
[    4.243106] marvell-nfc f10d0000.flash: Timeout waiting for RB signal
[    5.283106] marvell-nfc f10d0000.flash: Timeout waiting for RB signal
[    5.289562] nand_bbt: error -110 while marking block 2047 bad
[    6.323106] marvell-nfc f10d0000.flash: Timeout waiting for RB signal
[    6.329559] nand_bbt: error while writing BBT block -110
[    7.363106] marvell-nfc f10d0000.flash: Timeout waiting for RB signal
[    8.403105] marvell-nfc f10d0000.flash: Timeout waiting for RB signal
[    8.409559] nand_bbt: error -110 while marking block 2046 bad
...

Fixes: 02f26ecf8c ("mtd: nand: add reworked Marvell NAND controller driver")
Cc: stable@vger.kernel.org
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Tested-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
2018-05-04 10:35:04 +02:00
..
atmel
bcm47xxnflash
brcmnand
gpmi-nand
ams-delta.c
au1550nd.c
cafe_nand.c
cmx270_nand.c
cs553x_nand.c
davinci_nand.c
denali.c
denali.h
denali_dt.c
denali_pci.c
diskonchip.c
docg4.c
fsl_elbc_nand.c
fsl_ifc_nand.c
fsl_upm.c
fsmc_nand.c
gpio.c
hisi504_nand.c
jz4740_nand.c
jz4780_bch.c
jz4780_bch.h
jz4780_nand.c
Kconfig
lpc32xx_mlc.c
lpc32xx_slc.c
Makefile
marvell_nand.c mtd: rawnand: marvell: fix command xtype in BCH write hook 2018-05-04 10:35:04 +02:00
mpc5121_nfc.c
mtk_ecc.c
mtk_ecc.h
mtk_nand.c
mxc_nand.c
nand_amd.c
nand_base.c
nand_bbt.c
nand_bch.c
nand_ecc.c
nand_hynix.c
nand_ids.c
nand_macronix.c
nand_micron.c
nand_samsung.c
nand_timings.c
nand_toshiba.c
nandsim.c
ndfc.c
nuc900_nand.c
omap2.c
omap_elm.c
orion_nand.c
oxnas_nand.c
pasemi_nand.c
plat_nand.c
qcom_nandc.c
r852.c
r852.h
s3c2410.c
sh_flctl.c
sharpsl.c
sm_common.c
sm_common.h
socrates_nand.c
sunxi_nand.c
tango_nand.c
tmio_nand.c
txx9ndfmc.c
vf610_nfc.c
xway_nand.c