All of lore.kernel.org
 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: Miquel Raynal <miquel.raynal@bootlin.com>
Subject: [PATCH 00/19] Ensure good ECC settings
Date: Fri, 13 Nov 2020 13:34:05 +0100	[thread overview]
Message-ID: <20201113123424.32233-1-miquel.raynal@bootlin.com> (raw)

Hello,

As part of a previous work (~70 patches), the DT parsing operation has
been moved in the core in order to be generic to all NAND devices when
applicable. Depending on the organization of the driver, this could
have an impact, or not.

The problem here is (mainly) the way the ECC provider is
selected. Many host controller drivers simply set a default, others
only support a specific value. Both used the same code for these two
purposes.

This series should have been merged before the previously mentioned
series, but I simply overlooked that aspect and now I get various bug
reports, all related. So I plan to merge this series as part of a
fixes PR to be sure they get merged for v5.10.

The idea in all the following patches is to move the ECC
initialization in the ->attach_chip() hook, which gets called during
nand_scan(), after NAND discovery. As this stage, we know the NAND
chip memory layout, features and constraints. It is the moment when
the core requests the NAND controller driver to finalize its
initialization (ie. the ECC bits).

When the controller does not embed a hardware ECC engine, software
engines are used, we usually don't have the choice, so we keep
enforcing the only values supported by the controller. Otherwise, we
make a distinction between the choice of the hardware ECC engine or
any other engine.

Regards,
Miquèl


Miquel Raynal (19):
  mtd: rawnand: gpio: Move the ECC initialization to ->attach_chip()
  mtd: rawnand: xway: Move the ECC initialization to ->attach_chip()
  mtd: rawnand: ams-delta: Move the ECC initialization to
    ->attach_chip()
  mtd: rawnand: au1550: Move the ECC initialization to ->attach_chip()
  mtd: rawnand: cs553x: Move the ECC initialization to ->attach_chip()
  mtd: rawnand: davinci: Move the ECC initialization to ->attach_chip()
  mtd: rawnand: diskonchip: Move the ECC initialization to
    ->attach_chip()
  mtd: rawnand: fsmc: Move the ECC initialization to ->attach_chip()
  mtd: rawnand: lpc32xx_mlc: Move the ECC initialization to
    ->attach_chip()
  mtd: rawnand: lpc32xx_slc: Move the ECC initialization to
    ->attach_chip()
  mtd: rawnand: mpc5121: Move the ECC initialization to ->attach_chip()
  mtd: rawnand: orion: Move the ECC initialization to ->attach_chip()
  mtd: rawnand: txx9ndfmc: Move the ECC initialization to
    ->attach_chip()
  mtd: rawnand: tmio: Move the ECC initialization to ->attach_chip()
  mtd: rawnand: pasemi: Move the ECC initialization to ->attach_chip()
  mtd: rawnand: plat_nand: Move the ECC initialization to
    ->attach_chip()
  mtd: rawnand: r852: Move the ECC initialization to ->attach_chip()
  mtd: rawnand: sharpsl: Move the ECC initialization to ->attach_chip()
  mtd: rawnand: socrates: Move the ECC initialization to ->attach_chip()

 drivers/mtd/nand/raw/ams-delta.c     | 12 ++++++---
 drivers/mtd/nand/raw/au1550nd.c      | 11 ++++++--
 drivers/mtd/nand/raw/cs553x_nand.c   | 24 +++++++++++------
 drivers/mtd/nand/raw/davinci_nand.c  |  8 +++---
 drivers/mtd/nand/raw/diskonchip.c    | 29 +++++++++++++-------
 drivers/mtd/nand/raw/fsmc_nand.c     | 30 ++++++++++-----------
 drivers/mtd/nand/raw/gpio.c          | 11 ++++++--
 drivers/mtd/nand/raw/lpc32xx_mlc.c   | 23 +++++++++-------
 drivers/mtd/nand/raw/lpc32xx_slc.c   | 26 +++++++++---------
 drivers/mtd/nand/raw/mpc5121_nfc.c   | 19 +++++++++++--
 drivers/mtd/nand/raw/orion_nand.c    | 19 +++++++++++--
 drivers/mtd/nand/raw/pasemi_nand.c   | 19 +++++++++++--
 drivers/mtd/nand/raw/plat_nand.c     | 20 +++++++++++---
 drivers/mtd/nand/raw/r852.c          | 40 +++++++++++++++++++---------
 drivers/mtd/nand/raw/r852.h          |  1 +
 drivers/mtd/nand/raw/sharpsl.c       | 32 ++++++++++++++++------
 drivers/mtd/nand/raw/socrates_nand.c | 21 ++++++++++++---
 drivers/mtd/nand/raw/tmio_nand.c     | 33 ++++++++++++++++-------
 drivers/mtd/nand/raw/txx9ndfmc.c     | 14 ++++++----
 drivers/mtd/nand/raw/xway_nand.c     | 18 +++++++++++--
 20 files changed, 294 insertions(+), 116 deletions(-)

-- 
2.20.1


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

             reply	other threads:[~2020-11-13 12:35 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-13 12:34 Miquel Raynal [this message]
2020-11-13 12:34 ` [PATCH 01/19] mtd: rawnand: gpio: Move the ECC initialization to ->attach_chip() Miquel Raynal
2020-11-19 20:48   ` Miquel Raynal
2020-11-13 12:34 ` [PATCH 02/19] mtd: rawnand: xway: " Miquel Raynal
2020-11-19 20:48   ` Miquel Raynal
2020-11-13 12:34 ` [PATCH 03/19] mtd: rawnand: ams-delta: " Miquel Raynal
2020-11-19 20:47   ` Miquel Raynal
2020-11-13 12:34 ` [PATCH 04/19] mtd: rawnand: au1550: " Miquel Raynal
2020-11-19 20:47   ` Miquel Raynal
2020-11-13 12:34 ` [PATCH 05/19] mtd: rawnand: cs553x: " Miquel Raynal
2020-11-13 12:34 ` [PATCH 06/19] mtd: rawnand: davinci: " Miquel Raynal
2020-11-19 20:47   ` Miquel Raynal
2020-11-13 12:34 ` [PATCH 07/19] mtd: rawnand: diskonchip: " Miquel Raynal
2020-11-19 20:47   ` Miquel Raynal
2020-11-13 12:34 ` [PATCH 08/19] mtd: rawnand: fsmc: " Miquel Raynal
2020-11-13 12:34 ` [PATCH 09/19] mtd: rawnand: lpc32xx_mlc: " Miquel Raynal
2020-11-19 20:47   ` Miquel Raynal
2020-11-13 12:34 ` [PATCH 10/19] mtd: rawnand: lpc32xx_slc: " Miquel Raynal
2020-11-13 12:34 ` [PATCH 11/19] mtd: rawnand: mpc5121: " Miquel Raynal
2020-11-19 20:47   ` Miquel Raynal
2020-11-13 12:34 ` [PATCH 12/19] mtd: rawnand: orion: " Miquel Raynal
2020-11-19 20:47   ` Miquel Raynal
2020-11-13 12:34 ` [PATCH 13/19] mtd: rawnand: txx9ndfmc: " Miquel Raynal
2020-11-19 20:47   ` Miquel Raynal
2020-11-13 12:34 ` [PATCH 14/19] mtd: rawnand: tmio: " Miquel Raynal
2020-11-19 20:47   ` Miquel Raynal
2020-11-13 12:34 ` [PATCH 15/19] mtd: rawnand: pasemi: " Miquel Raynal
2020-11-19 20:47   ` Miquel Raynal
2020-11-13 12:34 ` [PATCH 16/19] mtd: rawnand: plat_nand: " Miquel Raynal
2020-11-19 20:46   ` Miquel Raynal
2020-11-13 12:34 ` [PATCH 17/19] mtd: rawnand: r852: " Miquel Raynal
2020-11-19 20:46   ` Miquel Raynal
2020-11-30  1:07   ` Nathan Chancellor
2020-11-30  8:04     ` Miquel Raynal
2020-11-13 12:34 ` [PATCH 18/19] mtd: rawnand: sharpsl: " Miquel Raynal
2020-11-13 12:34 ` [PATCH 19/19] mtd: rawnand: socrates: " Miquel Raynal
2020-11-19 20:46   ` 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=20201113123424.32233-1-miquel.raynal@bootlin.com \
    --to=miquel.raynal@bootlin.com \
    --cc=Tudor.Ambarus@microchip.com \
    --cc=linux-mtd@lists.infradead.org \
    --cc=richard@nod.at \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.