[PATCH 0/2] mtd: nand: rework nand_ecc_ctrl interface for OOB

Brian Norris computersforpeace at gmail.com
Mon Apr 16 18:35:53 EDT 2012


Hello,

I made a proposal to change the nand_chip and nand_ecc_ctrl interfaces a few
weeks ago to address a problem I see with a new NAND controller I'm working
with. This new controller does not return OOB data easily when performing page
reads/writes. However, currently these interfaces assume that OOB data is
read/written to/from the nand_chip.oob_poi buffer, even when the high-level
user did not request OOB data. I need to break that assumption with my NAND
driver, and so I have developed the following changes to the NAND interfaces
(see patch descriptions for more info).

You can see the original proposal and a little discussion here:

  http://lists.infradead.org/pipermail/linux-mtd/2012-March/040441.html

Note that I could not compile all the affected drivers, since some required
ARCH-specific builds that I am not familiar with.

Artem: can you perform your regular compile tests? I compile-tested as many as
I could.

Others: if you care about your driver, please compile test and review to be
sure I'm doing things safely for you. Because most in-kernel drivers seem to be
perfecly happy using nand_chip.oob_poi for OOB data unconditionally, I have not
struggled to port most of them to take advantage of this full change. However,
I might make an attempt eventually, if I can get the proper amount of review
support. I cannot test most of these drivers properly, and so I *need* your
reviewing and testing to prevent breakage.

Thanks for reviewing!

Brian

Brian Norris (2):
  mtd: nand: add OOB argument to NAND {read,write}_page interfaces
  mtd: nand: nand_do_{read,write}_ops - pass OOB buffer through

 drivers/mtd/nand/atmel_nand.c          |    7 +-
 drivers/mtd/nand/bcm_umi_bch.c         |   10 ++-
 drivers/mtd/nand/bcm_umi_nand.c        |    2 +-
 drivers/mtd/nand/bf5xx_nand.c          |    4 +-
 drivers/mtd/nand/cafe_nand.c           |   26 ++++---
 drivers/mtd/nand/denali.c              |    8 +-
 drivers/mtd/nand/docg4.c               |   12 ++--
 drivers/mtd/nand/fsl_elbc_nand.c       |    7 +-
 drivers/mtd/nand/fsl_ifc_nand.c        |    4 +-
 drivers/mtd/nand/fsmc_nand.c           |    3 +-
 drivers/mtd/nand/gpmi-nand/gpmi-nand.c |    5 +-
 drivers/mtd/nand/nand_base.c           |  131 ++++++++++++++++++--------------
 drivers/mtd/nand/pxa3xx_nand.c         |    4 +-
 drivers/mtd/nand/sh_flctl.c            |    4 +-
 include/linux/mtd/nand.h               |   11 ++-
 15 files changed, 132 insertions(+), 106 deletions(-)

-- 
1.7.5.4.2.g519b1




More information about the linux-mtd mailing list