kernel-fxtec-pro1x/drivers/mtd
Brian Norris e99d8b089a mtd: add MEMWRITE ioctl
Implement a new ioctl for writing both page data and OOB to flash at the
same time. This ioctl is intended to be a generic interface that can
replace other ioctls (MEMWRITEOOB and MEMWRITEOOB64) and cover the
functionality of several other old ones, e.g., MEMWRITE can:

* write autoplaced OOB instead of using ECCGETLAYOUT (deprecated) and
  working around the reserved areas
* write raw (no ECC) OOB instead of using MTDFILEMODE to set the
  per-file-descriptor MTD_FILE_MODE_RAW
* write raw (no ECC) data instead of using MTDFILEMODE
  (MTD_FILE_MODE_RAW) and using standard character device "write"

This ioctl is especially useful for MLC NAND, which cannot be written
twice (i.e., we cannot successfully write the page data and OOB in two
separate operations). Instead, MEMWRITE can write both in a single
operation.

Note that this ioctl is not affected by the MTD file mode (i.e.,
MTD_FILE_MODE_RAW vs. MTD_FILE_MODE_NORMAL), since it receives its write
mode as an input parameter.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@intel.com>
2011-09-11 15:56:25 +03:00
..
chips mtd: cleanup style on pr_debug messages 2011-09-11 15:02:16 +03:00
devices mtd: rename MTD_OOB_* to MTD_OPS_* 2011-09-11 15:28:59 +03:00
lpddr mtd: remove duplicate assignment of chip->state 2011-05-25 02:11:13 +01:00
maps mtd: Kbuild: remove reference to MTD_PARTITIONS 2011-09-11 15:02:16 +03:00
nand mtd: rename MTD_OOB_* to MTD_OPS_* 2011-09-11 15:28:59 +03:00
onenand mtd: rename MTD_OOB_* to MTD_OPS_* 2011-09-11 15:28:59 +03:00
tests mtd: rename MTD_OOB_* to MTD_OPS_* 2011-09-11 15:28:59 +03:00
ubi Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2011-07-22 19:02:39 -07:00
afs.c mtd: abstract last MTD partition parser argument 2011-09-11 15:02:10 +03:00
ar7part.c mtd: abstract last MTD partition parser argument 2011-09-11 15:02:10 +03:00
cmdlinepart.c mtd: abstract last MTD partition parser argument 2011-09-11 15:02:10 +03:00
ftl.c mtd: spelling fixes 2011-09-11 15:02:16 +03:00
inftlcore.c mtd: rename MTD_OOB_* to MTD_OPS_* 2011-09-11 15:28:59 +03:00
inftlmount.c mtd: spelling fixes 2011-09-11 15:02:16 +03:00
Kconfig mtd: remove CONFIG_MTD_DEBUG 2011-09-11 15:02:16 +03:00
Makefile mtd: make ofpart buildable as a separate module 2011-09-11 15:02:13 +03:00
mtd_blkdevs.c mtd: mtd_blkdevs: fix error path in blktrans_open 2011-05-25 01:53:45 +01:00
mtdblock.c mtd: replace DEBUG() with pr_debug() 2011-09-11 15:02:16 +03:00
mtdblock_ro.c mtd: Update copyright notices 2010-08-08 20:58:20 +01:00
mtdchar.c mtd: add MEMWRITE ioctl 2011-09-11 15:56:25 +03:00
mtdconcat.c mtd: spelling fixes 2011-09-11 15:02:16 +03:00
mtdcore.c mtd: check parts pointer before using it 2011-09-11 15:02:18 +03:00
mtdcore.h mtd: hide parse_mtd_partitions 2011-09-11 15:02:13 +03:00
mtdoops.c Merge git://git.infradead.org/mtd-2.6 2011-01-17 11:15:30 -08:00
mtdpart.c mtd: rename MTD_OOB_* to MTD_OPS_* 2011-09-11 15:28:59 +03:00
mtdsuper.c mtd: replace DEBUG() with pr_debug() 2011-09-11 15:02:16 +03:00
mtdswap.c mtd: rename MTD_OOB_* to MTD_OPS_* 2011-09-11 15:28:59 +03:00
nftlcore.c mtd: rename MTD_OOB_* to MTD_OPS_* 2011-09-11 15:28:59 +03:00
nftlmount.c mtd: spelling fixes 2011-09-11 15:02:16 +03:00
ofpart.c mtd: ofpart: add ofoldpart alias 2011-09-11 15:02:14 +03:00
redboot.c mtd: abstract last MTD partition parser argument 2011-09-11 15:02:10 +03:00
rfd_ftl.c mtd: Update copyright notices 2010-08-08 20:58:20 +01:00
sm_ftl.c mtd: rename MTD_OOB_* to MTD_OPS_* 2011-09-11 15:28:59 +03:00
sm_ftl.h mtd: sm_ftl: cosmetic, use bool when possible 2010-10-25 01:33:08 +01:00
ssfdc.c mtd: rename MTD_OOB_* to MTD_OPS_* 2011-09-11 15:28:59 +03:00