alistair23-linux/drivers/mtd/nand
Masahiro Yamada c19e31d0a3 mtd: nand: denali: rework interrupt handling
Simplify the interrupt handling and fix issues:

- The register field view of INTR_EN / INTR_STATUS is different
  among IP versions.  The global macro DENALI_IRQ_ALL is hard-coded
  for Intel platforms.  The interrupt mask should be determined at
  run-time depending on the running platform.

- wait_for_irq() loops do {} while() until interested flags are
  asserted.  The logic can be simplified.

- The spin_lock() guard seems too complex (and suspicious in a race
  condition if wait_for_completion_timeout() bails out by timeout).

- denali->complete is reused again and again, but reinit_completion()
  is missing.  Add it.

Re-work the code to make it more robust and easier to handle.

While we are here, also rename the jump label "failed_req_irq" to
more appropriate "disable_irq".

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
2017-06-20 09:14:29 +02:00
..
atmel mtd: nand: atmel: drop unused include 2017-06-13 15:06:55 +02:00
bcm47xxnflash mtd: nand: Make sure drivers not supporting SET/GET_FEATURES return -ENOTSUPP 2017-05-30 08:59:26 +02:00
brcmnand mtd: nand: brcmnand: Check flash #WP pin status before nand erase/program 2017-04-25 14:18:42 +02:00
gpmi-nand mtd: nand: gpmi: fix typo in comment 2017-06-10 12:09:28 +02:00
ams-delta.c mtd: nand: ams-delta: return error code of nand_scan() on error 2016-11-07 14:48:41 +01:00
au1550nd.c
bf5xx_nand.c
cafe_nand.c mtd: nand: Make sure drivers not supporting SET/GET_FEATURES return -ENOTSUPP 2017-05-30 08:59:26 +02:00
cmx270_nand.c drivers/mtd: Convert remaining uses of pr_warning to pr_warn 2017-04-19 13:10:54 -07:00
cs553x_nand.c mtd: nand: cs553x: return error code of nand_scan() on error 2016-11-07 14:48:42 +01:00
davinci_nand.c mtd: nand: davinci: set ECC algorithm explicitly for HW based ECC 2017-05-15 12:00:46 +02:00
denali.c mtd: nand: denali: rework interrupt handling 2017-06-20 09:14:29 +02:00
denali.h mtd: nand: denali: rework interrupt handling 2017-06-20 09:14:29 +02:00
denali_dt.c mtd: nand: denali: handle timing parameters by setup_data_interface() 2017-06-20 09:14:27 +02:00
denali_pci.c mtd: nand: denali: handle timing parameters by setup_data_interface() 2017-06-20 09:14:27 +02:00
diskonchip.c
docg4.c mtd: nand: Make sure drivers not supporting SET/GET_FEATURES return -ENOTSUPP 2017-05-30 08:59:26 +02:00
fsl_elbc_nand.c mtd: nand: Make sure drivers not supporting SET/GET_FEATURES return -ENOTSUPP 2017-05-30 08:59:26 +02:00
fsl_ifc_nand.c mtd: nand: fsl_ifc: fix handing of bit flips in erased pages 2017-06-10 12:09:05 +02:00
fsl_upm.c
fsmc_nand.c mtd: nand: Pass the CS line to ->setup_data_interface() 2017-06-01 10:09:28 +02:00
gpio.c mtd: nand: gpio: make nCE GPIO optional 2017-03-16 10:34:27 +01:00
hisi504_nand.c mtd: nand: Make sure drivers not supporting SET/GET_FEATURES return -ENOTSUPP 2017-05-30 08:59:26 +02:00
jz4740_nand.c
jz4780_bch.c
jz4780_bch.h
jz4780_nand.c mtd: nand: jz4780: Use mtd_set_ooblayout() to set the ooblayout 2017-05-15 12:00:36 +02:00
Kconfig mtd: nand: atmel: Add ->setup_data_interface() hooks 2017-06-01 10:09:29 +02:00
lpc32xx_mlc.c mtd: nand: lpc32xx: fix invalid error handling of a requested irq 2017-01-04 20:50:18 +01:00
lpc32xx_slc.c mtd: nand: lpc32xx_slc: Remove unneeded NULL check on 'rc' 2017-01-30 11:50:30 +01:00
Makefile mtd: nand: Cleanup/rework the atmel_nand driver 2017-04-25 14:18:29 +02:00
mpc5121_nfc.c mtd: nand: Make sure drivers not supporting SET/GET_FEATURES return -ENOTSUPP 2017-05-30 08:59:26 +02:00
mtk_ecc.c mtd: nand: mediatek: add support for MT2712 NAND FLASH Controller 2017-06-01 10:09:38 +02:00
mtk_ecc.h mtd: nand: mediatek: add support for different MTK NAND FLASH Controller IP 2017-06-01 10:09:37 +02:00
mtk_nand.c mtd: nand: mediatek: add support for MT2712 NAND FLASH Controller 2017-06-01 10:09:38 +02:00
mxc_nand.c mtd: nand: Pass the CS line to ->setup_data_interface() 2017-06-01 10:09:28 +02:00
nand_amd.c mtd: nand: Move AMD/Spansion specific init/detection logic in nand_amd.c 2017-03-08 23:21:22 +01:00
nand_base.c mtd: nand: add generic helpers to check, match, maximize ECC settings 2017-06-10 13:40:07 +02:00
nand_bbt.c
nand_bch.c
nand_ecc.c
nand_hynix.c mtd: nand: hynix: Fix an error code in init 2017-03-23 10:44:02 +01:00
nand_ids.c mtd: nand: Move Macronix specific initialization in nand_macronix.c 2017-03-08 23:21:23 +01:00
nand_macronix.c mtd: nand: Move Macronix specific initialization in nand_macronix.c 2017-03-08 23:21:23 +01:00
nand_micron.c mtd: nand: Wait for PAGEPROG to finish in drivers setting NAND_ECC_CUSTOM_PAGE_ACCESS 2017-06-01 10:09:33 +02:00
nand_samsung.c mtd: nand: samsung: Retrieve ECC requirements from extended ID 2017-03-08 23:21:23 +01:00
nand_timings.c mtd: nand: Add a few more timings to nand_sdr_timings 2016-11-07 14:48:37 +01:00
nand_toshiba.c mtd: nand: Move Toshiba specific init/detection logic in nand_toshiba.c 2017-03-08 23:21:21 +01:00
nandsim.c MTD updates for 4.12-rc1: 2017-05-11 10:44:22 -07:00
ndfc.c
nuc900_nand.c
omap2.c mtd: nand: omap2: Fix partition creation via cmdline mtdparts 2017-04-25 14:18:40 +02:00
omap_elm.c
orion_nand.c mtd: nand: orion: Handle return value of clk_prepare_enable 2017-06-10 12:09:27 +02:00
oxnas_nand.c mtd: oxnas_nand: Allocating more than necessary in probe() 2017-05-02 15:54:49 -07:00
pasemi_nand.c mtd: nand: pasemi: return error code of nand_scan() on error 2016-11-07 14:48:45 +01:00
plat_nand.c mtd: nand: plat_nand: return error code of nand_scan() on error 2016-11-07 14:48:45 +01:00
pxa3xx_nand.c mtd: nand: Make sure drivers not supporting SET/GET_FEATURES return -ENOTSUPP 2017-05-30 08:59:26 +02:00
qcom_nandc.c mtd: nand: Make sure drivers not supporting SET/GET_FEATURES return -ENOTSUPP 2017-05-30 08:59:26 +02:00
r852.c
r852.h
s3c2410.c mtd: nand: Pass the CS line to ->setup_data_interface() 2017-06-01 10:09:28 +02:00
sh_flctl.c mtd: nand: Make sure drivers not supporting SET/GET_FEATURES return -ENOTSUPP 2017-05-30 08:59:26 +02:00
sharpsl.c
sm_common.c
sm_common.h
socrates_nand.c mtd: nand: socrates: use nand_scan() for nand_scan_ident/tail() combo 2016-11-07 14:48:53 +01:00
sunxi_nand.c mtd: nand: sunxi: Remove unneeded ->cmdfunc(NAND_CMD_READ0, 0, page) 2017-06-01 10:09:32 +02:00
tango_nand.c mtd: nand: Wait for PAGEPROG to finish in drivers setting NAND_ECC_CUSTOM_PAGE_ACCESS 2017-06-01 10:09:33 +02:00
tmio_nand.c mtd: nand: tmio: return error code of nand_scan() on error 2016-11-07 14:48:44 +01:00
txx9ndfmc.c
vf610_nfc.c mtd: nand: Make sure drivers not supporting SET/GET_FEATURES return -ENOTSUPP 2017-05-30 08:59:26 +02:00
xway_nand.c mtd: update my email address 2017-02-08 12:49:27 -08:00