[PATCH 00/20] Create generic software ECC engines

Miquel Raynal miquel.raynal at bootlin.com
Tue Sep 29 19:01:04 EDT 2020


The point of this series is to migrate Hamming and BCH ECC engine
drivers to the generic NAND core. There is nothing raw NAND specific
in this code and these drivers should be usable by eg. the SPI-NAND
subsytem.

Thanks,
Miquèl

Miquel Raynal (20):
  mtd: nand: ecc: Add an I/O request tweaking mechanism
  mtd: nand: ecc-bch: Move BCH code to the generic NAND layer
  mtd: nand: ecc-bch: Cleanup and style fixes
  mtd: nand: ecc-bch: Stop exporting the private structure
  mtd: nand: ecc-bch: Return only valid error codes
  mtd: nand: ecc-bch: Drop mtd_nand_has_bch()
  mtd: nand: ecc-bch: Update the prototypes to be more generic
  mtd: nand: ecc-bch: Stop using raw NAND structures
  mtd: nand: ecc-bch: Create the software BCH engine
  mtd: rawnand: Get rid of chip->ecc.priv
  mtd: nand: ecc-hamming: Move Hamming code to the generic NAND layer
  mtd: nand: ecc-hamming: Clarify the driver descriptions
  mtd: nand: ecc-hamming: Drop/fix the kernel doc
  mtd: nand: ecc-hamming: Cleanup and style fixes
  mtd: nand: ecc-hamming: Rename the exported functions
  mtd: nand: ecc-hamming: Stop using raw NAND structures
  mtd: nand: ecc-hamming: Remove useless includes
  mtd: nand: ecc-hamming: Let the software Hamming ECC engine be
    unselected
  mtd: nand: ecc-hamming: Create the software Hamming engine
  mtd: nand: Let software ECC engines be retrieved from the NAND core

 arch/arm/mach-s3c24xx/common-smdk.c           |   1 -
 arch/arm/mach-s3c24xx/mach-anubis.c           |   1 -
 arch/arm/mach-s3c24xx/mach-at2440evb.c        |   1 -
 arch/arm/mach-s3c24xx/mach-bast.c             |   1 -
 arch/arm/mach-s3c24xx/mach-gta02.c            |   1 -
 arch/arm/mach-s3c24xx/mach-jive.c             |   1 -
 arch/arm/mach-s3c24xx/mach-mini2440.c         |   1 -
 arch/arm/mach-s3c24xx/mach-osiris.c           |   1 -
 arch/arm/mach-s3c24xx/mach-qt2410.c           |   1 -
 arch/arm/mach-s3c24xx/mach-rx3715.c           |   1 -
 arch/arm/mach-s3c24xx/mach-vstms.c            |   1 -
 drivers/mtd/nand/Kconfig                      |  31 ++
 drivers/mtd/nand/Makefile                     |   2 +
 drivers/mtd/nand/ecc-sw-bch.c                 | 404 ++++++++++++++++++
 .../nand/{raw/nand_ecc.c => ecc-sw-hamming.c} | 312 +++++++++++---
 drivers/mtd/nand/ecc.c                        | 126 ++++++
 drivers/mtd/nand/raw/Kconfig                  |  23 +-
 drivers/mtd/nand/raw/Makefile                 |   2 -
 drivers/mtd/nand/raw/cs553x_nand.c            |   3 +-
 drivers/mtd/nand/raw/fsl_elbc_nand.c          |   1 -
 drivers/mtd/nand/raw/fsl_ifc_nand.c           |   1 -
 drivers/mtd/nand/raw/fsl_upm.c                |   1 -
 drivers/mtd/nand/raw/fsmc_nand.c              |   5 +-
 drivers/mtd/nand/raw/lpc32xx_mlc.c            |   1 -
 drivers/mtd/nand/raw/lpc32xx_slc.c            |   3 +-
 drivers/mtd/nand/raw/mxic_nand.c              |   2 +-
 drivers/mtd/nand/raw/nand_base.c              | 204 ++++++---
 drivers/mtd/nand/raw/nand_bch.c               | 218 ----------
 drivers/mtd/nand/raw/nandsim.c                |   3 +-
 drivers/mtd/nand/raw/ndfc.c                   |   3 +-
 drivers/mtd/nand/raw/omap2.c                  |  31 +-
 drivers/mtd/nand/raw/pasemi_nand.c            |   1 -
 drivers/mtd/nand/raw/s3c2410.c                |   1 -
 drivers/mtd/nand/raw/sharpsl.c                |   3 +-
 drivers/mtd/nand/raw/sunxi_nand.c             |  31 +-
 drivers/mtd/nand/raw/tmio_nand.c              |   7 +-
 drivers/mtd/nand/raw/txx9ndfmc.c              |   5 +-
 drivers/mtd/sm_ftl.c                          |  30 +-
 drivers/mtd/tests/mtd_nandecctest.c           |  31 +-
 include/linux/mtd/nand-ecc-sw-bch.h           |  73 ++++
 include/linux/mtd/nand-ecc-sw-hamming.h       |  91 ++++
 include/linux/mtd/nand.h                      |  51 +++
 include/linux/mtd/nand_bch.h                  |  66 ---
 include/linux/mtd/nand_ecc.h                  |  39 --
 include/linux/mtd/rawnand.h                   |  16 +-
 include/linux/mtd/sharpsl.h                   |   1 -
 46 files changed, 1256 insertions(+), 577 deletions(-)
 create mode 100644 drivers/mtd/nand/ecc-sw-bch.c
 rename drivers/mtd/nand/{raw/nand_ecc.c => ecc-sw-hamming.c} (61%)
 delete mode 100644 drivers/mtd/nand/raw/nand_bch.c
 create mode 100644 include/linux/mtd/nand-ecc-sw-bch.h
 create mode 100644 include/linux/mtd/nand-ecc-sw-hamming.h
 delete mode 100644 include/linux/mtd/nand_bch.h
 delete mode 100644 include/linux/mtd/nand_ecc.h

-- 
2.20.1




More information about the linux-mtd mailing list