linux/drivers/mtd/nand
Brian Norris cc26c3cd3d mtd: nand: expand nand_ecc_layout, deprecate ioctl ECCGETLAYOUT
struct nand_ecclayout is too small for many new chips; OOB regions can be as
large as 448 bytes and may increase more in the future. Thus, copying that
struct to user-space with the ECCGETLAYOUT ioctl is not a good idea; the ioctl
would have to be updated every time there's a change to the current largest
size.

Instead, the old nand_ecclayout is renamed to nand_ecclayout_user and a
new struct nand_ecclayout is created that can accomodate larger sizes and
expand without affecting the user-space. struct nand_ecclayout can still
be used in board drivers without modification -- at least for now.

A new function is provided to convert from the new to the old in order to
allow the deprecated ioctl to continue to work with truncated data. Perhaps
the ioctl, the conversion process, and the struct nand_ecclayout_user can be
removed altogether in the future.

Note: There are comments in nand/davinci_nand.c::nand_davinci_probe()
regarding this issue; this driver (and maybe others) can be updated to
account for extra space. All kernel drivers can use the expanded
nand_ecclayout as a drop-in replacement and ignore its benefits.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
2010-10-24 23:37:24 +01:00
..
Kconfig Merge git://git.infradead.org/mtd-2.6 2010-08-10 11:49:21 -07:00
Makefile MTD: Nand: Add JZ4740 NAND driver 2010-08-05 13:26:18 +01:00
alauda.c mtd: nand: make USB device id constant 2010-02-25 11:26:31 +00:00
ams-delta.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
atmel_nand.c mtd: atmel_nand: fix warning: 'part_probes' defined but not used 2010-08-06 09:22:22 +01:00
atmel_nand_ecc.h
au1550nd.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2010-03-26 14:55:59 +00:00
autcpu12.c
bcm_umi_bch.c mtd: add bcmring nand driver 2009-10-20 10:07:23 +09:00
bcm_umi_nand.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2010-05-10 14:32:46 +01:00
bf5xx_nand.c mtd: Blackfin NFC: fix invalid free in remove() 2010-09-13 08:49:03 +01:00
cafe_nand.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2010-05-10 14:32:46 +01:00
cmx270_nand.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
cs553x_nand.c
davinci_nand.c mtd: nand: expand nand_ecc_layout, deprecate ioctl ECCGETLAYOUT 2010-10-24 23:37:24 +01:00
denali.c nand/denali: move all hardware initialization work to denali_hw_init 2010-08-12 11:10:40 +01:00
denali.h nand/denali: use dev_xx debug function to replace nand_dbg_print and some printk 2010-08-11 00:28:40 +01:00
diskonchip.c mtd: Remove obsolete <mtd/compatmac.h> include 2010-08-08 21:19:42 +01:00
edb7312.c
fsl_elbc_nand.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
fsl_upm.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
gpio.c mtd: drivers/mtd/nand/gpio.c: use resource_size() 2009-12-31 20:47:01 +00:00
h1910.c
jz4740_nand.c MTD: Nand: Add JZ4740 NAND driver 2010-08-05 13:26:18 +01:00
mpc5121_nfc.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
mxc_nand.c mtd: mxc_nand: configure pages per block for v2 controller 2010-09-13 08:50:34 +01:00
nand_base.c mtd: nand: spansion S30MLxxxP support 2010-10-24 23:27:11 +01:00
nand_bbt.c mtd: Remove obsolete <mtd/compatmac.h> include 2010-08-08 21:19:42 +01: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 Merge git://git.infradead.org/mtd-2.6 2009-12-16 10:23:43 -08:00
nand_ids.c mtd/nand_ids: Fix buswidth 2010-08-13 21:11:54 +01:00
nandsim.c mtd: nandsim: remove casts from void 2010-08-02 09:05:54 +01:00
ndfc.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
nomadik_nand.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2010-05-10 14:32:46 +01:00
nuc900_nand.c mtd: nand: rename w90p910_nand.c to nuc900_nand.c 2010-01-01 12:16:47 +00:00
omap2.c omap3 nand: cleanup virtual address usages 2010-08-02 15:30:38 +03:00
orion_nand.c mtd: orion/kirkwood: add RnB line support to orion mtd driver 2010-05-14 01:04:19 +01:00
pasemi_nand.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
plat_nand.c gen_nand: Test if nr_chips field is valid 2010-08-12 12:17:36 +01:00
ppchameleonevb.c
pxa3xx_nand.c mtd: pxa3xx: fix build error when CONFIG_MTD_PARTITIONS is not defined 2010-09-13 08:50:42 +01:00
r852.c mtd: r852: remove casts from void 2010-08-02 09:06:03 +01:00
r852.h mtd: nand: Add driver for Ricoh xD/SmartMedia reader 2010-02-26 19:22:38 +00:00
rtc_from4.c mtd: Remove obsolete <mtd/compatmac.h> include 2010-08-08 21:19:42 +01:00
s3c2410.c mtd: s3c nand: parsing command-line partitions prior to set->partitions 2010-08-02 09:08:13 +01:00
sh_flctl.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2010-05-10 14:32:46 +01:00
sharpsl.c
sm_common.c mtd: sm_common: remove casts from void 2010-08-02 09:06:10 +01:00
sm_common.h mtd: sm_common: split smartmedia and xD table 2010-05-14 01:03:46 +01:00
socrates_nand.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
spia.c
tmio_nand.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2010-05-10 14:32:46 +01:00
txx9ndfmc.c mtd: nand: Allow caller to pass alternative ID table to nand_scan_ident() 2010-02-26 18:32:56 +00:00