From: Boris Brezillon <boris.brezillon@collabora.com> To: Miquel Raynal <miquel.raynal@bootlin.com> Cc: Mason Yang <masonccyang@mxic.com.tw>, Vignesh Raghavendra <vigneshr@ti.com>, Tudor Ambarus <Tudor.Ambarus@microchip.com>, Julien Su <juliensu@mxic.com.tw>, Richard Weinberger <richard@nod.at>, Schrempf Frieder <frieder.schrempf@kontron.de>, Paul Cercueil <paul@crapouillou.net>, Marek Vasut <marek.vasut@gmail.com>, linux-mtd@lists.infradead.org, Thomas Petazzoni <thomas.petazzoni@bootlin.com>, Brian Norris <computersforpeace@gmail.com>, David Woodhouse <dwmw2@infradead.org>, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v3 05/40] mtd: rawnand: Create a new enumeration to describe properly ECC types Date: Sat, 12 Oct 2019 11:14:00 +0200 [thread overview] Message-ID: <20191012111400.10654982@dhcp-172-31-174-146.wireless.concordia.ca> (raw) In-Reply-To: <20190919193141.7865-6-miquel.raynal@bootlin.com> On Thu, 19 Sep 2019 21:31:05 +0200 Miquel Raynal <miquel.raynal@bootlin.com> wrote: > Now that the misleading mix between ECC engine type and OOB placement > has been addressed, add a new enumeration to properly define ECC types > (also called provider or mode). > > Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> > --- > drivers/mtd/nand/raw/nand_base.c | 7 +++++++ > include/linux/mtd/rawnand.h | 16 ++++++++++++++++ > 2 files changed, 23 insertions(+) > > diff --git a/drivers/mtd/nand/raw/nand_base.c b/drivers/mtd/nand/raw/nand_base.c > index 9a05ebfc44d1..00a261284aad 100644 > --- a/drivers/mtd/nand/raw/nand_base.c > +++ b/drivers/mtd/nand/raw/nand_base.c > @@ -4842,6 +4842,13 @@ static const char * const nand_ecc_modes[] = { > [NAND_ECC_ON_DIE] = "on-die", > }; > > +static const char * const nand_ecc_engine_providers[] = { > + [NAND_NO_ECC_ENGINE] = "none", > + [NAND_SOFT_ECC_ENGINE] = "soft", > + [NAND_HW_ECC_ENGINE] = "hw", > + [NAND_ON_DIE_ECC_ENGINE] = "on-die", > +}; > + > static const char * const nand_ecc_engine_oob_placement[] = { > [NAND_ECC_SYNDROME_OOB_PLACEMENT] = "hw_syndrome", > [NAND_ECC_OOB_FIRST_PLACEMENT] = "hw_oob_first", > diff --git a/include/linux/mtd/rawnand.h b/include/linux/mtd/rawnand.h > index 1b462fb2ab77..23feab162bc2 100644 > --- a/include/linux/mtd/rawnand.h > +++ b/include/linux/mtd/rawnand.h > @@ -93,6 +93,22 @@ enum nand_ecc_mode { > NAND_ECC_ON_DIE, > }; > > +/** > + * enum nand_ecc_engine_type - NAND ECC engine type/provider > + * @NAND_INVALID_ECC_ENGINE: Invalid value > + * @NAND_NO_ECC_ENGINE: No ECC correction > + * @NAND_SOFT_ECC_ENGINE: Software ECC correction > + * @NAND_HW_ECC_ENGINE: Hardware (controller side) ECC correction > + * @NAND_ON_DIE_ECC_ENGINE: Hardware (chip side) ECC correction > + */ > +enum nand_ecc_engine_type { > + NAND_INVALID_ECC_ENGINE, Same comment as for the NAND_ECC_INVALID addition: if you don't have an entry in nand_ecc_engine_providers for this INVALID case, it's probably better to define it to -1. > + NAND_NO_ECC_ENGINE, > + NAND_SOFT_ECC_ENGINE, > + NAND_HW_ECC_ENGINE, I'd rename that one into NAND_CONTROLLER_ECC_ENGINE, HW is a bit too vague. > + NAND_ON_DIE_ECC_ENGINE, I also find it clearer when the same prefix is used: NAND_ECC_ENGINE_INVALID = -1, NAND_ECC_ENGINE_NONE = 0, NAND_ECC_ENGINE_SOFT, NAND_ECC_ENGINE_CONTROLLER, NAND_ECC_ENGINE_ON_DIE, Looks good otherwise. Feel free to ignore my comments if you disagree. Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> > +}; > + > /** > * enum nand_ecc_engine_oob_placement - NAND ECC engine OOB placement > * @NAND_ECC_DEFAULT_OOB_PLACEMENT: Standard layout, or not specified ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/
next prev parent reply other threads:[~2019-10-12 9:14 UTC|newest] Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-09-19 19:31 [PATCH v3 00/40] Introduce the generic ECC engine abstraction Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 01/40] mtd: rawnand: Avoid a typedef Miquel Raynal 2019-10-12 8:41 ` Boris Brezillon 2019-09-19 19:31 ` [PATCH v3 02/40] mtd: rawnand: Add an invalid ECC mode to discriminate with valid ones Miquel Raynal 2019-10-12 8:48 ` Boris Brezillon 2019-09-19 19:31 ` [PATCH v3 03/40] mtd: rawnand: Create a new enumeration to describe OOB placement Miquel Raynal 2019-10-12 9:02 ` Boris Brezillon 2019-10-12 9:07 ` Boris Brezillon 2019-09-19 19:31 ` [PATCH v3 04/40] mtd: rawnand: Separate the ECC engine type and the " Miquel Raynal 2019-10-12 9:05 ` Boris Brezillon 2019-09-19 19:31 ` [PATCH v3 05/40] mtd: rawnand: Create a new enumeration to describe properly ECC types Miquel Raynal 2019-10-12 9:14 ` Boris Brezillon [this message] 2020-01-15 20:58 ` Miquel Raynal 2019-10-12 9:55 ` Boris Brezillon 2019-09-19 19:31 ` [PATCH v3 06/40] mtd: rawnand: Use the new ECC engine type enumeration Miquel Raynal 2019-10-12 9:15 ` Boris Brezillon 2019-10-12 9:17 ` Boris Brezillon 2019-10-12 9:28 ` Boris Brezillon 2020-01-15 10:33 ` Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 07/40] mtd: rawnand: Drop the legacy ECC " Miquel Raynal 2019-10-12 9:29 ` Boris Brezillon 2019-09-19 19:31 ` [PATCH v3 08/40] mtd: nand: Move nand_device forward declaration to the top Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 09/40] mtd: nand: Add an extra level in the Kconfig hierarchy Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 10/40] mtd: nand: Drop useless 'depends on' in Kconfig Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 11/40] mtd: nand: Add a NAND page I/O request type Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 12/40] mtd: nand: Rename a core structure Miquel Raynal 2019-10-12 9:35 ` Boris Brezillon 2020-01-16 8:53 ` Miquel Raynal 2020-01-16 9:12 ` Boris Brezillon 2019-09-19 19:31 ` [PATCH v3 13/40] mtd: nand: Add more parameters to the nand_ecc_props structure Miquel Raynal 2019-10-12 9:37 ` Boris Brezillon 2020-01-16 8:59 ` Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 14/40] mtd: nand: Introduce the ECC engine abstraction Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 15/40] mtd: nand: Convert the generic NAND layer to the generic ECC framework Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 16/40] mtd: Fix typo in mtd_ooblayout_set_databytes() description Miquel Raynal 2019-10-12 10:58 ` Boris Brezillon 2019-09-19 19:31 ` [PATCH v3 17/40] mtd: nand: Move standard OOB layouts to the generic ECC core Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 18/40] mtd: nand: Move ECC specific functions to the " Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 19/40] mtd: nand: ecc: Turn the software BCH implementation generic Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 20/40] mtd: rawnand: Get rid of chip->ecc.priv Miquel Raynal 2019-09-20 6:18 ` Maxime Ripard 2019-09-19 19:31 ` [PATCH v3 21/40] mtd: nand: ecc: Move Hamming code to the generic NAND layer Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 22/40] mtd: nand: ecc: Clarify the software Hamming introductory line Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 23/40] mtd: nand: ecc: Turn the software Hamming implementation generic Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 24/40] mtd: nand: Remove useless include about software Hamming ECC Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 25/40] mtd: nand: ecc: Let the software Hamming ECC engine be unselected Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 26/40] mtd: nand: ecc: Create the software BCH engine instance Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 27/40] mtd: nand: ecc: Create the software Hamming " Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 28/40] mtd: nand: Let software ECC engines be retrieved from the NAND core Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 29/40] mtd: spinand: Fix typo in comment Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 30/40] mtd: spinand: Move ECC related definitions earlier in the driver Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 31/40] mtd: spinand: Instantiate a SPI-NAND on-die ECC engine Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 32/40] mtd: nand: Let on-die ECC engines be retrieved from the NAND core Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 33/40] mtd: rawnand: Fill a default ECC provider/algorithm Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 34/40] mtd: spinand: " Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 35/40] mtd: nand: Add helpers to manage ECC engines and configurations Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 36/40] mtd: spinand: Use the external ECC engine logic Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 37/40] mtd: spinand: Propagate ECC information to the MTD structure Miquel Raynal 2020-02-17 13:27 ` Emil Lenngren 2020-02-17 13:31 ` Boris Brezillon 2019-09-19 19:31 ` [PATCH v3 38/40] mtd: spinand: Allow the case where there is no ECC engine Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 39/40] mtd: spinand: Fix OOB read Miquel Raynal 2019-09-19 19:31 ` [PATCH v3 40/40] mtd: nand: ecc: Add infrastructure to support hardware engines 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=20191012111400.10654982@dhcp-172-31-174-146.wireless.concordia.ca \ --to=boris.brezillon@collabora.com \ --cc=Tudor.Ambarus@microchip.com \ --cc=computersforpeace@gmail.com \ --cc=dwmw2@infradead.org \ --cc=frieder.schrempf@kontron.de \ --cc=juliensu@mxic.com.tw \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-mtd@lists.infradead.org \ --cc=marek.vasut@gmail.com \ --cc=masonccyang@mxic.com.tw \ --cc=miquel.raynal@bootlin.com \ --cc=paul@crapouillou.net \ --cc=richard@nod.at \ --cc=thomas.petazzoni@bootlin.com \ --cc=vigneshr@ti.com \ --subject='Re: [PATCH v3 05/40] mtd: rawnand: Create a new enumeration to describe properly ECC types' \ /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
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).