linux/drivers/mtd/nand
Brian Norris 1fbb938dff mtd: nand: add 'oob_required' argument to NAND {read,write}_page interfaces
New NAND controllers can perform read/write via HW engines which don't expose
OOB data in their DMA mode. To reflect this, we should rework the nand_chip /
nand_ecc_ctrl interfaces that assume that drivers will always read/write OOB
data in the nand_chip.oob_poi buffer. A better interface includes a boolean
argument that explicitly tells the callee when OOB data is requested by the
calling layer (for reading/writing to/from nand_chip.oob_poi).

This patch adds the 'oob_required' parameter to each relevant {read,write}_page
interface; all 'oob_required' parameters are left unused for now. The next
patch will set the parameter properly in the nand_base.c callers, and follow-up
patches will make use of 'oob_required' in some of the callee functions.

Note that currently, there is no harm in ignoring the 'oob_required' parameter
and *always* utilizing nand_chip.oob_poi, but there can be
performance/complexity/design benefits from avoiding filling oob_poi in the
common case. I will try to implement this for some drivers which can be ported
easily.

Note: I couldn't compile-test all of these easily, as some had ARCH
dependencies.

[dwmw2: Merge later 1/0 vs. true/false cleanup]
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Reviewed-by: Shmulik Ladkani <shmulik.ladkani@gmail.com>
Acked-by: Jiandong Zheng <jdzheng@broadcom.com>
Acked-by: Mike Dunn <mikedunn@newsguy.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
2012-05-13 23:20:00 -05:00
..
gpmi-nand mtd: nand: add 'oob_required' argument to NAND {read,write}_page interfaces 2012-05-13 23:20:00 -05:00
alauda.c mtd: driver _read() returns max_bitflips; mtd_read() returns -EUCLEAN 2012-05-13 23:14:23 -05:00
ams-delta.c mtd: ams-delta: fix request_mem_region() failure 2012-05-08 16:24:33 -05:00
atmel_nand_ecc.h [ARM] 5265/3: [AT91] Add copyright info 2008-09-21 23:01:18 +01:00
atmel_nand.c mtd: nand: add 'oob_required' argument to NAND {read,write}_page interfaces 2012-05-13 23:20:00 -05:00
au1550nd.c mtd: nand: kill NAND_NO_AUTOINCR option 2012-05-13 23:15:38 -05:00
autcpu12.c mtd: nand: rename NAND_USE_FLASH_BBT 2011-09-11 15:01:56 +03:00
bcm_umi_bch.c mtd: nand: add 'oob_required' argument to NAND {read,write}_page interfaces 2012-05-13 23:20:00 -05:00
bcm_umi_nand.c mtd: nand: add 'oob_required' argument to NAND {read,write}_page interfaces 2012-05-13 23:20:00 -05:00
bf5xx_nand.c mtd: nand: add 'oob_required' argument to NAND {read,write}_page interfaces 2012-05-13 23:20:00 -05:00
cafe_nand.c mtd: nand: add 'oob_required' argument to NAND {read,write}_page interfaces 2012-05-13 23:20:00 -05:00
cmx270_nand.c mtd: do not use plain 0 as NULL 2012-03-27 00:53:20 +01:00
cs553x_nand.c mtd: nand: kill NAND_NO_AUTOINCR option 2012-05-13 23:15:38 -05:00
davinci_nand.c mtd: flash drivers set ecc strength 2012-03-27 00:56:46 +01:00
denali.c mtd: nand: add 'oob_required' argument to NAND {read,write}_page interfaces 2012-05-13 23:20:00 -05:00
denali.h mtd: denali: detect the number of banks 2011-05-25 02:02:12 +01:00
diskonchip.c mtd: flash drivers set ecc strength 2012-03-27 00:56:46 +01:00
docg4.c mtd: nand: add 'oob_required' argument to NAND {read,write}_page interfaces 2012-05-13 23:20:00 -05:00
fsl_elbc_nand.c mtd: nand: add 'oob_required' argument to NAND {read,write}_page interfaces 2012-05-13 23:20:00 -05:00
fsl_ifc_nand.c mtd: nand: add 'oob_required' argument to NAND {read,write}_page interfaces 2012-05-13 23:20:00 -05:00
fsl_upm.c mtd: convert drivers/mtd/* to use module_platform_driver() 2012-01-09 18:12:35 +00:00
fsmc_nand.c mtd: nand: add 'oob_required' argument to NAND {read,write}_page interfaces 2012-05-13 23:20:00 -05:00
gpio.c mtd: gpio-nand: add device tree bindings 2012-01-09 18:23:58 +00:00
h1910.c mtd: nand: kill NAND_NO_AUTOINCR option 2012-05-13 23:15:38 -05:00
jz4740_nand.c mtd: nand: fix incorrect ecc strength values 2012-05-13 23:10:28 -05:00
Kconfig MTD merge for 3.4 2012-03-30 17:31:56 -07:00
Makefile MTD merge for 3.4 2012-03-30 17:31:56 -07:00
mpc5121_nfc.c mtd: nand: kill NAND_NO_AUTOINCR option 2012-05-13 23:15:38 -05:00
mxc_nand.c mtd: mxc_nand: fix several sparse warnings about incorrect address space 2012-05-13 23:03:31 -05:00
nand_base.c mtd: nand: add 'oob_required' argument to NAND {read,write}_page interfaces 2012-05-13 23:20:00 -05:00
nand_bbt.c mtd: introduce mtd_write_oob interface 2012-01-09 18:25:24 +00:00
nand_bch.c mtd: cleanup style on pr_debug messages 2011-09-11 15:02:16 +03:00
nand_bcm_umi.c mtd: add bcmring nand driver 2009-10-20 10:07:23 +09:00
nand_bcm_umi.h mtd: nand_bcm: fix hot spin and code duplication 2010-02-26 16:56:35 +00:00
nand_ecc.c mtd: spelling, capitalization, uniformity 2011-09-11 15:02:13 +03:00
nand_ids.c mtd: nand: kill NAND_NO_AUTOINCR option 2012-05-13 23:15:38 -05:00
nandsim.c mtd: nandsim: remove autoincrement code 2012-05-13 23:15:10 -05:00
ndfc.c mtd: flash drivers set ecc strength 2012-03-27 00:56:46 +01:00
nomadik_nand.c mtd: introduce mtd_resume interface 2012-01-09 18:25:46 +00:00
nuc900_nand.c mtd: convert drivers/mtd/* to use module_platform_driver() 2012-01-09 18:12:35 +00:00
omap2.c mtd: nand: omap: fix race condition in omap_wait() 2012-05-13 22:54:00 -05:00
orion_nand.c mtd: do not use plain 0 as NULL 2012-03-27 00:53:20 +01:00
pasemi_nand.c mtd: nand: kill NAND_NO_AUTOINCR option 2012-05-13 23:15:38 -05:00
plat_nand.c mtd: add read_byte support to plat_nand 2012-05-13 23:16:53 -05:00
ppchameleonevb.c mtd: do not use plain 0 as NULL 2012-03-27 00:53:20 +01:00
pxa3xx_nand.c mtd: nand: add 'oob_required' argument to NAND {read,write}_page interfaces 2012-05-13 23:20:00 -05:00
r852.c mtd: use module_pci_driver 2012-05-13 22:47:19 -05:00
r852.h mtd: r852: remove useless pci powerup/down from suspend/resume routines 2010-10-25 01:32:21 +01:00
rtc_from4.c mtd: flash drivers set ecc strength 2012-03-27 00:56:46 +01:00
s3c2410.c mtd: flash drivers set ecc strength 2012-03-27 00:56:46 +01:00
sh_flctl.c mtd: nand: add 'oob_required' argument to NAND {read,write}_page interfaces 2012-05-13 23:20:00 -05:00
sharpsl.c mtd: flash drivers set ecc strength 2012-03-27 00:56:46 +01:00
sm_common.c mtd: nand: kill NAND_NO_AUTOINCR option 2012-05-13 23:15:38 -05:00
sm_common.h mtd: sm_common: split smartmedia and xD table 2010-05-14 01:03:46 +01:00
socrates_nand.c mtd: convert drivers/mtd/* to use module_platform_driver() 2012-01-09 18:12:35 +00:00
spia.c mtd: convert remaining users to mtd_device_register() 2011-05-25 02:25:00 +01:00
tmio_nand.c mtd: flash drivers set ecc strength 2012-03-27 00:56:46 +01:00
txx9ndfmc.c mtd: flash drivers set ecc strength 2012-03-27 00:56:46 +01:00