linux/drivers/mtd/nand/raw
Abhishek Sahu 6f20070d51 mtd: rawnand: qcom: wait for desc completion in all BAM channels
The BAM has 3 channels - tx, rx and command. command channel
is used for register read/writes, tx channel for data writes
and rx channel for data reads. Currently, the driver assumes the
transfer completion once it gets all the command descriptors
completed. Sometimes, there is race condition between data channel
(tx/rx) and command channel completion. In these cases,
the data present in buffer is not valid during small window
between command descriptor completion and data descriptor
completion.

This patch generates NAND transfer completion when both
(Data and Command) DMA channels have completed all its DMA
descriptors. It assigns completion callback in last
DMA descriptors of that channel and wait for completion.

Fixes: 8d6b6d7e13 ("mtd: nand: qcom: support for command descriptor formation")
Cc: stable@vger.kernel.org
Signed-off-by: Abhishek Sahu <absahu@codeaurora.org>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
2018-07-18 09:24:07 +02:00
..
atmel mtd: rawnand: atmel: add module param to avoid using dma 2018-07-02 09:01:29 +02:00
bcm47xxnflash
brcmnand
gpmi-nand mtd: rawnand: gpmi: remove unnecessary variables 2018-04-29 08:56:48 +02:00
ams-delta.c
au1550nd.c
cafe_nand.c rslib: Split rs control struct 2018-04-24 19:50:08 -07:00
cmx270_nand.c
cs553x_nand.c
davinci_nand.c ARM: SoC platform updates 2018-06-11 17:49:09 -07:00
denali_dt.c mtd: rawnand: denali_dt: set clk_x_rate to 200 MHz unconditionally 2018-06-22 18:47:56 +02:00
denali_pci.c
denali.c mtd: rawnand: denali: use helper function for ecc setup 2018-07-18 09:24:05 +02:00
denali.h
diskonchip.c MTD changes: 2018-06-08 10:39:20 -07:00
docg4.c
fsl_elbc_nand.c mtd: rawnand: fsl_elbc: fix probe function error path 2018-04-29 08:56:42 +02:00
fsl_ifc_nand.c mtd: rawnand: fsl_ifc: fix FSL NAND driver to read all ONFI parameter pages 2018-05-09 16:04:21 +02:00
fsl_upm.c
fsmc_nand.c mtd: rawnand: fsmc: fix the probe function error path 2018-04-29 08:56:43 +02:00
gpio.c
hisi504_nand.c mtd: rawnand: hisi504: fix the probe function error path 2018-04-29 08:56:44 +02:00
jz4740_nand.c
jz4780_bch.c
jz4780_bch.h
jz4780_nand.c
Kconfig mtd: rawnand: add NVIDIA Tegra NAND Flash controller driver 2018-07-02 09:02:06 +02:00
lpc32xx_mlc.c mtd: rawnand: lpc32xx_mlc: fix the probe function error path 2018-04-29 08:56:45 +02:00
lpc32xx_slc.c mtd: rawnand: lpc32xx_slc: fix the probe function error path 2018-04-29 08:56:46 +02:00
Makefile mtd: rawnand: add NVIDIA Tegra NAND Flash controller driver 2018-07-02 09:02:06 +02:00
marvell_nand.c mtd: rawnand: marvell: Handle on-die ECC 2018-07-02 09:02:12 +02:00
mpc5121_nfc.c
mtk_ecc.c mtd: rawnand: mtk: use of_device_get_match_data() 2018-04-29 08:56:41 +02:00
mtk_ecc.h
mtk_nand.c mtd: rawnand: mtk: use of_device_get_match_data() 2018-04-29 08:56:41 +02:00
mxc_nand.c mtd: rawnand: mxc: set spare area size register explicitly 2018-06-19 13:17:59 +02:00
nand_amd.c
nand_base.c mtd: rawnand: helper function for setting up ECC configuration 2018-07-18 09:24:05 +02:00
nand_bbt.c
nand_bch.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
nand_ecc.c
nand_hynix.c mtd: rawnand: hynix: fix decoding the OOB size on H27UCG8T2BTR 2018-07-02 09:01:38 +02:00
nand_ids.c
nand_macronix.c mtd: rawnand: All AC chips have a broken GET_FEATURES(TIMINGS). 2018-06-22 00:31:22 +02:00
nand_micron.c mtd: rawnand: micron: add fixup for ONFI revision 2018-07-02 09:02:28 +02:00
nand_samsung.c
nand_timings.c
nand_toshiba.c
nandsim.c treewide: Use array_size() in vzalloc() 2018-06-12 16:19:22 -07:00
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 mtd: rawnand: qcom: wait for desc completion in all BAM channels 2018-07-18 09:24:07 +02:00
r852.c
r852.h
s3c2410.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
sh_flctl.c
sharpsl.c
sm_common.c
sm_common.h
socrates_nand.c
sunxi_nand.c mtd: rawnand: sunxi: Remove support for GPIO-based Ready/Busy polling 2018-04-29 08:56:41 +02:00
tango_nand.c
tegra_nand.c mtd: rawnand: add NVIDIA Tegra NAND Flash controller driver 2018-07-02 09:02:06 +02:00
tmio_nand.c
txx9ndfmc.c
vf610_nfc.c
xway_nand.c