Linux Samsung SOC development
 help / color / mirror / Atom feed
From: Stefan Agner <stefan-XLVq0VzYD2Y@public.gmane.org>
To: Boris Brezillon
	<boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
Cc: David Woodhouse <dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>,
	Brian Norris
	<computersforpeace-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	Daniel Mack <daniel-cYrQPVfZoowdnm+yROfE0A@public.gmane.org>,
	Haojian Zhuang
	<haojian.zhuang-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Robert Jarzmik <robert.jarzmik-GANU6spQydw@public.gmane.org>,
	Kukjin Kim <kgene-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Krzysztof Kozlowski
	<k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>,
	linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	Ralf Baechle <ralf-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org>,
	linux-mips-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org,
	Nicolas Ferre
	<nicolas.ferre-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org>,
	Jean-Christophe Plagniol-Villard
	<plagnioj-sclMFOaUSTBWk0Htik3J/w@public.gmane.org>,
	Alexandre Belloni
	<alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
	Wenyou Yang <wenyou.yang-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org>,
	Josh Wu <rainyfeeling-1ViLX0X+lBJBDgjK7y7TUQ@public.gmane.org>,
	Ezequiel Garcia
	<ezequiel.garcia-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
	Maxime Ripard
	<maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
	Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>,
	linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org,
	Kyungmin Park
	<kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>G
Subject: Re: [PATCH v3 00/52] mtd: rework ECC layout definition
Date: Thu, 25 Feb 2016 17:27:23 -0800	[thread overview]
Message-ID: <d968b867f4d7f603581a0ff83e07c15c@agner.ch> (raw)
In-Reply-To: <1456448280-27788-1-git-send-email-boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>

Hi Boris,

On 2016-02-25 16:57, Boris Brezillon wrote:
> Hello,
> 
> This patchset aims at getting rid of the nand_ecclayout limitations.
> struct nand_ecclayout is defining fixed eccpos and oobfree arrays which
> can only be increased by modifying the MTD_MAX_ECCPOS_ENTRIES_LARGE and
> MTD_MAX_OOBFREE_ENTRIES_LARGE macros.
> This approach forces us to modify the macro values each time we add a
> new NAND chip with a bigger OOB area, and increasing these arrays also
> penalize all platforms, even those who only support small NAND devices
> (with small OOB area).
> 
> The idea to overcome this limitation, is to define the ECC/OOB layout
> by the mean of two functions: ->ecc() and ->free(), which will
> basically return the same information has those stored in the
> nand_ecclayout struct.
> 
> Another advantage of this solution is that ECC layouts are usually
> following a repetitive pattern (i.e. leave X bytes free and put Y bytes
> of ECC per ECC chunk), which allows one to implement the ->ecc()
> and ->free() functions with a simple logic that can be applied
> to any size of OOB.
> 
> Patches 1 to 4 are just cleanups or trivial fixes that can be taken
> independently.
> 
> Also note that the last two commits are removing the nand_ecclayout
> definition, thus preventing any new driver to use this structure.
> Of course, this step can be delayed if some of the previous patches
> are not accepted.

Is the patch set somewhere available to pull from?

Do I see things right that patch 21/52 contains the crucial function
nand_ooblayout_ecc_lp which calculate the ECC position? (for those who
do not provide mtd_ooblayout_ops anyway...)

--
Stefan

> 
> Best Regards,
> 
> Boris
> 
> Changes since v2:
> - fixed a few bugs in the core and driver implementations
> 
> Changes since v1:
> - unified the way of defining ECC and free bytes
> - fixed a few bugs in some ->ecc()/->free() implementations
> - added new helpers to ease ECC and free bytes manipulation
> - separated driver changes in different commits to ease review
> - dropped already applied patches
> 
> *** BLURB HERE ***
> 
> Boris Brezillon (52):
>   mtd: kill the ecclayout->oobavail field
>   mtd: create an mtd_oobavail() helper and make use of it
>   mtd: mtdswap: remove useless if (!mtd->ecclayout) test
>   mtd: nand: simplify nand_bch_init() usage
>   mtd: add mtd_ooblayout_xxx() helper functions
>   mtd: use mtd_ooblayout_xxx() helpers where appropriate
>   mtd: nand: core: use mtd_ooblayout_xxx() helpers where appropriate
>   mtd: nand: atmel: use mtd_ooblayout_xxx() helpers where appropriate
>   mtd: nand: fsl_ifc: use mtd_ooblayout_xxx() helpers where appropriate
>   mtd: nand: gpmi: use mtd_ooblayout_xxx() helpers where appropriate
>   mtd: nand: lpc32xx: use mtd_ooblayout_xxx() helpers where appropriate
>   mtd: nand: omap2: use mtd_ooblayout_xxx() helpers where appropriate
>   mtd: onenand: use mtd_ooblayout_xxx() helpers where appropriate
>   mtd: add mtd_set_ecclayout() helper function
>   mtd: use mtd_set_ecclayout() where appropriate
>   mtd: nand: use mtd_set_ecclayout() where appropriate
>   mtd: onenand: use mtd_set_ecclayout() where appropriate
>   mtd: docg3: use mtd_set_ecclayout() where appropriate
>   mtd: create an mtd_ooblayout_ops struct to ease ECC layout definition
>   mtd: docg3: switch to mtd_ooblayout_ops
>   mtd: nand: implement the default mtd_ooblayout_ops
>   mtd: nand: bch: switch to mtd_ooblayout_ops
>   mtd: nand: sharpsl: switch to mtd_ooblayout_ops
>   mtd: nand: jz4740: switch to mtd_ooblayout_ops
>   mtd: nand: atmel: switch to mtd_ooblayout_ops
>   mtd: nand: bf5xx: switch to mtd_ooblayout_ops
>   mtd: nand: brcm: switch to mtd_ooblayout_ops
>   mtd: nand: cafe: switch to mtd_ooblayout_ops
>   mtd: nand: davinci: switch to mtd_ooblayout_ops
>   mtd: nand: denali: switch to mtd_ooblayout_ops
>   mtd: nand: diskonchip: switch to mtd_ooblayout_ops
>   mtd: nand: docg4: switch to mtd_ooblayout_ops
>   mtd: nand: fsl_elbc: switch to mtd_ooblayout_ops
>   mtd: nand: fsl_ifc: switch to mtd_ooblayout_ops
>   mtd: nand: fsmc: switch to mtd_ooblayout_ops
>   mtd: nand: fsmc: get rid of the fsmc_nand_eccplace struct
>   mtd: nand: gpmi: switch to mtd_ooblayout_ops
>   mtd: nand: hisi504: switch to mtd_ooblayout_ops
>   mtd: nand: jz4780: switch to mtd_ooblayout_ops
>   mtd: nand: lpc32xx: switch to mtd_ooblayout_ops
>   mtd: nand: mxc: switch to mtd_ooblayout_ops
>   mtd: nand: omap2: switch to mtd_ooblayout_ops
>   mtd: nand: pxa3xx: switch to mtd_ooblayout_ops
>   mtd: nand: s3c2410: switch to mtd_ooblayout_ops
>   mtd: nand: sh_flctl: switch to mtd_ooblayout_ops
>   mtd: nand: sm_common: switch to mtd_ooblayout_ops
>   mtd: nand: sunxi: switch to mtd_ooblayout_ops
>   mtd: nand: vf610: switch to mtd_ooblayout_ops
>   mtd: onenand: switch to mtd_ooblayout_ops
>   staging: mt29f_spinand: switch to mtd_ooblayout_ops
>   mtd: nand: kill the ecc->layout field
>   mtd: kill the nand_ecclayout struct
> 
>  arch/arm/mach-pxa/spitz.c                       |  55 +++-
>  arch/mips/include/asm/mach-jz4740/jz4740_nand.h |   2 +-
>  arch/mips/jz4740/board-qi_lb60.c                |  87 +++---
>  drivers/mtd/devices/docg3.c                     |  51 +++-
>  drivers/mtd/mtdchar.c                           | 123 ++++++--
>  drivers/mtd/mtdconcat.c                         |   2 +-
>  drivers/mtd/mtdcore.c                           | 358 ++++++++++++++++++++++++
>  drivers/mtd/mtdpart.c                           |  28 +-
>  drivers/mtd/mtdswap.c                           |  24 +-
>  drivers/mtd/nand/atmel_nand.c                   | 130 ++++-----
>  drivers/mtd/nand/bf5xx_nand.c                   |  51 ++--
>  drivers/mtd/nand/brcmnand/brcmnand.c            | 262 ++++++++++-------
>  drivers/mtd/nand/cafe_nand.c                    |  45 ++-
>  drivers/mtd/nand/davinci_nand.c                 | 118 +++-----
>  drivers/mtd/nand/denali.c                       |  51 +++-
>  drivers/mtd/nand/diskonchip.c                   |  60 +++-
>  drivers/mtd/nand/docg4.c                        |  34 ++-
>  drivers/mtd/nand/fsl_elbc_nand.c                |  83 +++---
>  drivers/mtd/nand/fsl_ifc_nand.c                 | 245 +++++-----------
>  drivers/mtd/nand/fsmc_nand.c                    | 322 ++++++---------------
>  drivers/mtd/nand/gpmi-nand/gpmi-nand.c          |  61 ++--
>  drivers/mtd/nand/hisi504_nand.c                 |  27 +-
>  drivers/mtd/nand/jz4740_nand.c                  |   2 +-
>  drivers/mtd/nand/jz4780_nand.c                  |  19 +-
>  drivers/mtd/nand/lpc32xx_mlc.c                  |  50 ++--
>  drivers/mtd/nand/lpc32xx_slc.c                  |  58 +++-
>  drivers/mtd/nand/mxc_nand.c                     | 212 +++++++-------
>  drivers/mtd/nand/nand_base.c                    | 344 ++++++++++++-----------
>  drivers/mtd/nand/nand_bch.c                     |  46 ++-
>  drivers/mtd/nand/omap2.c                        | 241 +++++++++-------
>  drivers/mtd/nand/pxa3xx_nand.c                  | 104 ++++---
>  drivers/mtd/nand/s3c2410.c                      |  32 ++-
>  drivers/mtd/nand/sh_flctl.c                     |  87 ++++--
>  drivers/mtd/nand/sharpsl.c                      |   2 +-
>  drivers/mtd/nand/sm_common.c                    |  93 ++++--
>  drivers/mtd/nand/sunxi_nand.c                   | 114 ++++----
>  drivers/mtd/nand/vf610_nfc.c                    |  34 +--
>  drivers/mtd/onenand/onenand_base.c              | 262 ++++++++---------
>  drivers/mtd/tests/oobtest.c                     |  49 ++--
>  drivers/staging/mt29f_spinand/mt29f_spinand.c   |  49 ++--
>  fs/jffs2/wbuf.c                                 |   6 +-
>  include/linux/mtd/fsmc.h                        |  18 --
>  include/linux/mtd/mtd.h                         |  69 ++++-
>  include/linux/mtd/nand.h                        |   5 +-
>  include/linux/mtd/nand_bch.h                    |   8 +-
>  include/linux/mtd/onenand.h                     |   2 -
>  include/linux/mtd/sharpsl.h                     |   2 +-
>  include/uapi/mtd/mtd-abi.h                      |   2 +-
>  48 files changed, 2375 insertions(+), 1754 deletions(-)

  parent reply	other threads:[~2016-02-26  1:27 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-26  0:57 [PATCH v3 00/52] mtd: rework ECC layout definition Boris Brezillon
2016-02-26  0:57 ` [PATCH v3 25/52] mtd: nand: atmel: switch to mtd_ooblayout_ops Boris Brezillon
     [not found] ` <1456448280-27788-1-git-send-email-boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-02-26  0:57   ` [PATCH v3 01/52] mtd: kill the ecclayout->oobavail field Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 02/52] mtd: create an mtd_oobavail() helper and make use of it Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 03/52] mtd: mtdswap: remove useless if (!mtd->ecclayout) test Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 04/52] mtd: nand: simplify nand_bch_init() usage Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 05/52] mtd: add mtd_ooblayout_xxx() helper functions Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 06/52] mtd: use mtd_ooblayout_xxx() helpers where appropriate Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 07/52] mtd: nand: core: " Boris Brezillon
     [not found]     ` <1456448280-27788-8-git-send-email-boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-02-26 14:35       ` Harvey Hunt
     [not found]         ` <56D0629C.9080805-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org>
2016-02-26 15:10           ` Boris Brezillon
2016-02-26 15:17             ` Harvey Hunt
     [not found]               ` <56D06C88.9080608-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org>
2016-02-26 18:33                 ` Boris Brezillon
2016-02-29 10:33                   ` Harvey Hunt
2016-02-26  0:57   ` [PATCH v3 08/52] mtd: nand: atmel: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 09/52] mtd: nand: fsl_ifc: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 10/52] mtd: nand: gpmi: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 11/52] mtd: nand: lpc32xx: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 12/52] mtd: nand: omap2: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 13/52] mtd: onenand: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 14/52] mtd: add mtd_set_ecclayout() helper function Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 15/52] mtd: use mtd_set_ecclayout() where appropriate Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 16/52] mtd: nand: " Boris Brezillon
     [not found]     ` <1456448280-27788-17-git-send-email-boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2016-03-05  2:26       ` Brian Norris
     [not found]         ` <20160305022621.GN55664-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2016-03-05  8:53           ` Boris Brezillon
2016-03-05  9:01             ` Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 17/52] mtd: onenand: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 18/52] mtd: docg3: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 19/52] mtd: create an mtd_ooblayout_ops struct to ease ECC layout definition Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 20/52] mtd: docg3: switch to mtd_ooblayout_ops Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 21/52] mtd: nand: implement the default mtd_ooblayout_ops Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 22/52] mtd: nand: bch: switch to mtd_ooblayout_ops Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 23/52] mtd: nand: sharpsl: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 24/52] mtd: nand: jz4740: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 26/52] mtd: nand: bf5xx: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 27/52] mtd: nand: brcm: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 28/52] mtd: nand: cafe: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 29/52] mtd: nand: davinci: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 30/52] mtd: nand: denali: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 31/52] mtd: nand: diskonchip: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 32/52] mtd: nand: docg4: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 33/52] mtd: nand: fsl_elbc: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 35/52] mtd: nand: fsmc: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 36/52] mtd: nand: fsmc: get rid of the fsmc_nand_eccplace struct Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 37/52] mtd: nand: gpmi: switch to mtd_ooblayout_ops Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 38/52] mtd: nand: hisi504: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 39/52] mtd: nand: jz4780: " Boris Brezillon
2016-02-29 10:45     ` Harvey Hunt
2016-02-26  0:57   ` [PATCH v3 40/52] mtd: nand: lpc32xx: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 41/52] mtd: nand: mxc: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 42/52] mtd: nand: omap2: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 43/52] mtd: nand: pxa3xx: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 44/52] mtd: nand: s3c2410: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 45/52] mtd: nand: sh_flctl: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 46/52] mtd: nand: sm_common: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 47/52] mtd: nand: sunxi: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 48/52] mtd: nand: vf610: " Boris Brezillon
2016-02-26 19:43     ` Stefan Agner
2016-02-26 20:43       ` Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 49/52] mtd: onenand: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 50/52] staging: mt29f_spinand: " Boris Brezillon
2016-02-26  0:57   ` [PATCH v3 51/52] mtd: nand: kill the ecc->layout field Boris Brezillon
2016-02-26  0:58   ` [PATCH v3 52/52] mtd: kill the nand_ecclayout struct Boris Brezillon
2016-02-26  1:27   ` Stefan Agner [this message]
2016-02-26  2:16     ` [PATCH v3 00/52] mtd: rework ECC layout definition Boris Brezillon
2016-02-26  0:57 ` [PATCH v3 34/52] mtd: nand: fsl_ifc: switch to mtd_ooblayout_ops Boris Brezillon

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=d968b867f4d7f603581a0ff83e07c15c@agner.ch \
    --to=stefan-xlvq0vzyd2y@public.gmane.org \
    --cc=alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
    --cc=boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
    --cc=computersforpeace-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=daniel-cYrQPVfZoowdnm+yROfE0A@public.gmane.org \
    --cc=dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \
    --cc=ezequiel.garcia-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
    --cc=haojian.zhuang-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=k.kozlowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
    --cc=kgene-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-mips-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org \
    --cc=linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
    --cc=maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
    --cc=nicolas.ferre-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org \
    --cc=plagnioj-sclMFOaUSTBWk0Htik3J/w@public.gmane.org \
    --cc=rainyfeeling-1ViLX0X+lBJBDgjK7y7TUQ@public.gmane.org \
    --cc=ralf-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org \
    --cc=robert.jarzmik-GANU6spQydw@public.gmane.org \
    --cc=wens-jdAy2FN1RRM@public.gmane.org \
    --cc=wenyou.yang-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org \
    /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