All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/19] Ensure good ECC settings
@ 2020-11-13 12:34 Miquel Raynal
  2020-11-13 12:34 ` [PATCH 01/19] mtd: rawnand: gpio: Move the ECC initialization to ->attach_chip() Miquel Raynal
                   ` (18 more replies)
  0 siblings, 19 replies; 37+ messages in thread
From: Miquel Raynal @ 2020-11-13 12:34 UTC (permalink / raw)
  To: Richard Weinberger, Vignesh Raghavendra, Tudor Ambarus, linux-mtd
  Cc: Miquel Raynal

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/

^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2020-11-30  8:05 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-13 12:34 [PATCH 00/19] Ensure good ECC settings Miquel Raynal
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

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.