[PATCH 00/12] mtd: various "no ECC" and MLC NAND work

Brian Norris computersforpeace at gmail.com
Tue Aug 30 21:45:35 EDT 2011


Hi,

This patch series includes edited versions of several patches and RFCs -
some changed some not - as well as new material and documentation. To
avoid confusion, I will not include any version numbers yet (i.e.,
everything is "v1"), and any updates from here on out can be v2, v3,
etc. if necessary. I will try to include any important changes in the
comments though.

The key additions in this patch series are:

(1) add replaceable `{read,write}_oob_raw()' functions to
    `struct nand_chip'
(2) add a new ioctl(MEMWRITE)
(3) improve documentation

Patches for category (1) help improve support for reading/writing flash
without ECC on systems that calculate ECC on OOB operations. Category
(2) allows us to write data+OOB in a single operation; this solves
problems with MLC NAND, which can only be written once per page. And
category (3) was sorely needed for old and new functionality alike :)

Generally, these fixes have been tested by using various combinations of
nandwrite on nandsim, SLC NAND flash, and MLC NAND flash. In order to
utilize the new ioctl, I had to make some custom edits. I should have a
few patches soon to support this new stuff.

Note: the first and last patches are bugfixes to patches that are still
queued in l2-mtd-2.6.git. They probably should be squashed into the
relevant patches.

Brian

Brian Norris (12):
  mtd: nand: initialize chip->oob_poi before write
  mtd: support writing OOB without ECC
  mtd: support reading OOB without ECC
  mtd: move mtd_oob_mode_t to shared kernel/user space
  mtd: rename MTD_OOB_* to MTD_OPS_*
  mtd: rename MTD_MODE_* to MTD_FILE_MODE_*
  mtd: add MEMWRITE ioctl
  mtd: nand: document nand_chip.oob_poi
  mtd: document ABI
  mtd: nand: kill member `ops' of `struct nand_chip'
  mtd: kill old field for `struct mtd_info_user'
  mtd: nand: free allocated memory

 drivers/mtd/devices/doc2000.c          |    4 +-
 drivers/mtd/devices/doc2001.c          |    4 +-
 drivers/mtd/devices/doc2001plus.c      |    4 +-
 drivers/mtd/inftlcore.c                |    6 +-
 drivers/mtd/mtdchar.c                  |  115 ++++++++++++++++++++++++--------
 drivers/mtd/mtdpart.c                  |    2 +-
 drivers/mtd/mtdswap.c                  |    6 +-
 drivers/mtd/nand/gpmi-nand/gpmi-nand.c |    2 +-
 drivers/mtd/nand/nand_base.c           |  107 ++++++++++++++++++-----------
 drivers/mtd/nand/nand_bbt.c            |    8 +-
 drivers/mtd/nand/sm_common.c           |    2 +-
 drivers/mtd/nftlcore.c                 |    6 +-
 drivers/mtd/onenand/onenand_base.c     |   42 ++++++------
 drivers/mtd/onenand/onenand_bbt.c      |    2 +-
 drivers/mtd/sm_ftl.c                   |    4 +-
 drivers/mtd/ssfdc.c                    |    2 +-
 drivers/mtd/tests/mtd_oobtest.c        |   24 +++---
 drivers/mtd/tests/mtd_readtest.c       |    2 +-
 drivers/staging/spectra/lld_mtd.c      |    6 +-
 fs/jffs2/wbuf.c                        |    6 +-
 include/linux/mtd/mtd.h                |   18 +-----
 include/linux/mtd/nand.h               |   12 ++-
 include/mtd/mtd-abi.h                  |  115 +++++++++++++++++++++++++++-----
 23 files changed, 329 insertions(+), 170 deletions(-)

-- 
1.7.5.4





More information about the linux-mtd mailing list