linux-mtd.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Richard Weinberger <richard@nod.at>,
	Vignesh Raghavendra <vigneshr@ti.com>,
	Tudor Ambarus <Tudor.Ambarus@microchip.com>,
	<linux-mtd@lists.infradead.org>
Cc: Julien Su <juliensu@mxic.com.tw>,
	Boris Brezillon <boris.brezillon@collabora.com>,
	Mason Yang <masonccyang@mxic.com.tw>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	Miquel Raynal <miquel.raynal@bootlin.com>
Subject: [PATCH v4 00/21] Prepare the introduction of generic ECC engines
Date: Fri, 17 Jan 2020 22:41:30 +0100	[thread overview]
Message-ID: <20200117214151.20767-1-miquel.raynal@bootlin.com> (raw)

Already 3 series have been sent on this topic but as they grow over
time, I decide to split it arbitrary and take only the preparation
patches that are here. The actual ECC machinery will be contributed
later when this preparation series will be merged.

Cheers,
Miquèl

Changes in v4
=============
* Rebased on top of a recent kernel version.
* Added Boris' reviewed-by.
* Added Maxime's Acked-by tag.
* Added the missing of_device.h header to ecc.c.
* Corrected a 'minimum' comparison by using min_t.
 * Updated the new Macronix raw NAND controller driver by using the new
  (ECC related) function names.
* Fixed a function call in ndfc.c.
* Update brcmnand.c file to fit new enumerations and structures (due
  to recent Kamal's changes).
* Force sm_ftl to depends on the Hamming engine, because by just
  selecting it the ECC code would be embedded in the NAND core and the
  NAND core might not be compiled in with sm_ftl.
* Fixed a structure field name that I previously added in davinci
  platform data.
* Moved the oob_first placement scheme to Davinci driver. Removed any
  occurence of it out of the driver (unused).
* Simplify structure names as proposed by Boris.
* Change enumeration/string names about ECC engine
  providers/placements.
* Change the logic in the of_get_nand_ecc_* helpers to ensure backward
  compatibility.
* Use enums intead of unsigned integers in the core when referring to
  ECC engine type, placement and algorithm.
* Add nand-ecc-placement DT property.
* Deprecate hw_syndrome.
* Deprecate nand-ecc-mode in favor of nand-ecc-provider.


Miquel Raynal (21):
  mtd: Fix typo in mtd_ooblayout_set_databytes() description
  mtd: rawnand: Avoid a typedef
  mtd: rawnand: Drop OOB_FIRST placement scheme
  dt-bindings: mtd: Deprecate OOB_FIRST mode
  mtd: rawnand: Return an enum from of_get_nand_ecc_algo()
  mtd: rawnand: Add an invalid ECC mode to discriminate with valid ones
  mtd: rawnand: Create a new enumeration to describe OOB placement
  mtd: rawnand: Separate the ECC engine type and the OOB placement
  mtd: rawnand: Create a new enumeration to describe properly ECC types
  mtd: rawnand: Create a helper to retrieve the ECC placement
  mtd: rawnand: Use the new ECC engine type enumeration
  mtd: rawnand: Deprecate nand-ecc-mode in favor of nand-ecc-provider
  mtd: rawnand: Drop the legacy ECC type enumeration
  dt-bindings: mtd: Add the nand-ecc-placement property
  dt-bindings: mtd: Deprecate hw_syndrome from the ECC modes
  dt-bindings: mtd: Deprecate the nand-ecc-mode property
  mtd: nand: Move nand_device forward declaration to the top
  mtd: nand: Add an extra level in the Kconfig hierarchy
  mtd: nand: Drop useless 'depends on' in Kconfig
  mtd: nand: Add a NAND page I/O request type
  mtd: nand: Rename a core structure

 .../devicetree/bindings/mtd/atmel-nand.txt    |   3 +-
 .../bindings/mtd/nand-controller.yaml         |  27 +-
 arch/arm/mach-davinci/board-da830-evm.c       |   2 +-
 arch/arm/mach-davinci/board-da850-evm.c       |   2 +-
 arch/arm/mach-davinci/board-dm355-evm.c       |   2 +-
 arch/arm/mach-davinci/board-dm355-leopard.c   |   3 +-
 arch/arm/mach-davinci/board-dm365-evm.c       |   2 +-
 arch/arm/mach-davinci/board-dm644x-evm.c      |   2 +-
 arch/arm/mach-davinci/board-dm646x-evm.c      |   2 +-
 arch/arm/mach-davinci/board-mityomapl138.c    |   2 +-
 arch/arm/mach-davinci/board-neuros-osd2.c     |   2 +-
 arch/arm/mach-davinci/board-omapl138-hawk.c   |   2 +-
 arch/arm/mach-s3c24xx/common-smdk.c           |   2 +-
 arch/arm/mach-s3c24xx/mach-anubis.c           |   2 +-
 arch/arm/mach-s3c24xx/mach-at2440evb.c        |   2 +-
 arch/arm/mach-s3c24xx/mach-bast.c             |   2 +-
 arch/arm/mach-s3c24xx/mach-gta02.c            |   2 +-
 arch/arm/mach-s3c24xx/mach-jive.c             |   2 +-
 arch/arm/mach-s3c24xx/mach-mini2440.c         |   2 +-
 arch/arm/mach-s3c24xx/mach-osiris.c           |   2 +-
 arch/arm/mach-s3c24xx/mach-qt2410.c           |   2 +-
 arch/arm/mach-s3c24xx/mach-rx1950.c           |   2 +-
 arch/arm/mach-s3c24xx/mach-rx3715.c           |   2 +-
 arch/arm/mach-s3c24xx/mach-vstms.c            |   2 +-
 arch/arm/mach-s3c64xx/mach-hmt.c              |   2 +-
 arch/arm/mach-s3c64xx/mach-mini6410.c         |   2 +-
 arch/arm/mach-s3c64xx/mach-real6410.c         |   2 +-
 drivers/mtd/mtdcore.c                         |   2 +-
 drivers/mtd/nand/Kconfig                      |   5 +
 drivers/mtd/nand/onenand/Kconfig              |   1 -
 drivers/mtd/nand/raw/Kconfig                  |   1 -
 drivers/mtd/nand/raw/ams-delta.c              |   2 +-
 drivers/mtd/nand/raw/atmel/nand-controller.c  |  14 +-
 drivers/mtd/nand/raw/au1550nd.c               |   2 +-
 .../mtd/nand/raw/bcm47xxnflash/ops_bcm4706.c  |   3 +-
 drivers/mtd/nand/raw/brcmnand/brcmnand.c      |   8 +-
 .../mtd/nand/raw/cadence-nand-controller.c    |   4 +-
 drivers/mtd/nand/raw/cafe_nand.c              |   3 +-
 drivers/mtd/nand/raw/cmx270_nand.c            |   2 +-
 drivers/mtd/nand/raw/cs553x_nand.c            |   2 +-
 drivers/mtd/nand/raw/davinci_nand.c           | 153 +++++---
 drivers/mtd/nand/raw/denali.c                 |   3 +-
 drivers/mtd/nand/raw/diskonchip.c             |   3 +-
 drivers/mtd/nand/raw/fsl_elbc_nand.c          |  18 +-
 drivers/mtd/nand/raw/fsl_ifc_nand.c           |  10 +-
 drivers/mtd/nand/raw/fsl_upm.c                |   2 +-
 drivers/mtd/nand/raw/fsmc_nand.c              |  12 +-
 drivers/mtd/nand/raw/gpio.c                   |   2 +-
 drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c    |   2 +-
 drivers/mtd/nand/raw/hisi504_nand.c           |   6 +-
 .../mtd/nand/raw/ingenic/ingenic_nand_drv.c   |  14 +-
 drivers/mtd/nand/raw/lpc32xx_mlc.c            |   2 +-
 drivers/mtd/nand/raw/lpc32xx_slc.c            |   3 +-
 drivers/mtd/nand/raw/marvell_nand.c           |  17 +-
 drivers/mtd/nand/raw/meson_nand.c             |   2 +-
 drivers/mtd/nand/raw/mpc5121_nfc.c            |   2 +-
 drivers/mtd/nand/raw/mtk_nand.c               |   6 +-
 drivers/mtd/nand/raw/mxc_nand.c               |  23 +-
 drivers/mtd/nand/raw/nand_base.c              | 330 ++++++++----------
 drivers/mtd/nand/raw/nand_micron.c            |   4 +-
 drivers/mtd/nand/raw/nand_toshiba.c           |   3 +-
 drivers/mtd/nand/raw/nandsim.c                |   4 +-
 drivers/mtd/nand/raw/ndfc.c                   |   2 +-
 drivers/mtd/nand/raw/omap2.c                  |  20 +-
 drivers/mtd/nand/raw/orion_nand.c             |   2 +-
 drivers/mtd/nand/raw/pasemi_nand.c            |   2 +-
 drivers/mtd/nand/raw/plat_nand.c              |   2 +-
 drivers/mtd/nand/raw/qcom_nandc.c             |   2 +-
 drivers/mtd/nand/raw/r852.c                   |   3 +-
 drivers/mtd/nand/raw/s3c2410.c                |  16 +-
 drivers/mtd/nand/raw/sh_flctl.c               |   4 +-
 drivers/mtd/nand/raw/sharpsl.c                |   2 +-
 drivers/mtd/nand/raw/socrates_nand.c          |   3 +-
 drivers/mtd/nand/raw/stm32_fmc2_nand.c        |   9 +-
 drivers/mtd/nand/raw/sunxi_nand.c             |  18 +-
 drivers/mtd/nand/raw/tango_nand.c             |   2 +-
 drivers/mtd/nand/raw/tegra_nand.c             |   2 +-
 drivers/mtd/nand/raw/tmio_nand.c              |   2 +-
 drivers/mtd/nand/raw/txx9ndfmc.c              |   2 +-
 drivers/mtd/nand/raw/vf610_nfc.c              |   4 +-
 drivers/mtd/nand/raw/xway_nand.c              |   2 +-
 drivers/mtd/nand/spi/core.c                   |   4 +-
 include/linux/mtd/nand.h                      |  30 +-
 include/linux/mtd/rawnand.h                   |  46 ++-
 include/linux/mtd/spinand.h                   |   2 +-
 include/linux/platform_data/mtd-davinci.h     |   9 +-
 .../linux/platform_data/mtd-nand-s3c2410.h    |   2 +-
 87 files changed, 521 insertions(+), 422 deletions(-)

-- 
2.20.1


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

             reply	other threads:[~2020-01-17 21:43 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-17 21:41 Miquel Raynal [this message]
2020-01-17 21:41 ` [PATCH v4 01/21] mtd: Fix typo in mtd_ooblayout_set_databytes() description Miquel Raynal
2020-01-17 21:41 ` [PATCH v4 02/21] mtd: rawnand: Avoid a typedef Miquel Raynal
2020-01-17 21:41 ` [PATCH v4 03/21] mtd: rawnand: Drop OOB_FIRST placement scheme Miquel Raynal
2020-01-17 21:41 ` [PATCH v4 04/21] dt-bindings: mtd: Deprecate OOB_FIRST mode Miquel Raynal
2020-01-17 21:41 ` [PATCH v4 05/21] mtd: rawnand: Return an enum from of_get_nand_ecc_algo() Miquel Raynal
2020-01-17 21:41 ` [PATCH v4 06/21] mtd: rawnand: Add an invalid ECC mode to discriminate with valid ones Miquel Raynal
2020-01-17 21:41 ` [PATCH v4 07/21] mtd: rawnand: Create a new enumeration to describe OOB placement Miquel Raynal
2020-01-17 21:41 ` [PATCH v4 08/21] mtd: rawnand: Separate the ECC engine type and the " Miquel Raynal
2020-01-17 21:41 ` [PATCH v4 09/21] mtd: rawnand: Create a new enumeration to describe properly ECC types Miquel Raynal
2020-01-17 21:41 ` [PATCH v4 10/21] mtd: rawnand: Create a helper to retrieve the ECC placement Miquel Raynal
2020-01-17 21:41 ` [PATCH v4 11/21] mtd: rawnand: Use the new ECC engine type enumeration Miquel Raynal
2020-01-17 21:41 ` [PATCH v4 12/21] mtd: rawnand: Deprecate nand-ecc-mode in favor of nand-ecc-provider Miquel Raynal
2020-01-17 21:41 ` [PATCH v4 13/21] mtd: rawnand: Drop the legacy ECC type enumeration Miquel Raynal
2020-01-17 21:41 ` [PATCH v4 14/21] dt-bindings: mtd: Add the nand-ecc-placement property Miquel Raynal
2020-01-17 21:41 ` [PATCH v4 15/21] dt-bindings: mtd: Deprecate hw_syndrome from the ECC modes Miquel Raynal
2020-01-17 21:41 ` [PATCH v4 16/21] dt-bindings: mtd: Deprecate the nand-ecc-mode property Miquel Raynal
2020-01-17 21:41 ` [PATCH v4 17/21] mtd: nand: Move nand_device forward declaration to the top Miquel Raynal
2020-01-17 21:41 ` [PATCH v4 18/21] mtd: nand: Add an extra level in the Kconfig hierarchy Miquel Raynal
2020-01-17 21:41 ` [PATCH v4 19/21] mtd: nand: Drop useless 'depends on' in Kconfig Miquel Raynal
2020-01-17 21:41 ` [PATCH v4 20/21] mtd: nand: Add a NAND page I/O request type Miquel Raynal
2020-01-17 21:41 ` [PATCH v4 21/21] mtd: nand: Rename a core structure Miquel Raynal

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200117214151.20767-1-miquel.raynal@bootlin.com \
    --to=miquel.raynal@bootlin.com \
    --cc=Tudor.Ambarus@microchip.com \
    --cc=boris.brezillon@collabora.com \
    --cc=juliensu@mxic.com.tw \
    --cc=linux-mtd@lists.infradead.org \
    --cc=masonccyang@mxic.com.tw \
    --cc=richard@nod.at \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=vigneshr@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).