Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1355324
| From | Brian Norris <computersforpeace@gmail.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH v4 00/52] mtd: rework ECC layout definition |
| Date | 2016-03-10 20:10 +0100 |
| Message-ID | <rbe8a-2SM-7@gated-at.bofh.it> (permalink) |
| References | <r9ZXz-16Y-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Mon, Mar 07, 2016 at 10:46:50AM +0100, 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. > > All those changes are available here [1]. > > Best Regards, > > Boris > > [1]https://github.com/bbrezillon/linux-0day/tree/nand/ecclayout FYI, I've pushed patches 1-4 to l2-mtd.git. I'll take another look at them this week I hope (or your new fellow, Richard, can!), then you can queue them up for the next cycle. Brian
Back to linux.kernel | Previous | Next — Previous in thread | Find similar | Unroll thread
[PATCH v4 00/52] mtd: rework ECC layout definition Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 10:50 +0100
[PATCH v4 01/52] mtd: kill the ecclayout->oobavail field Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 10:50 +0100
[PATCH v4 21/52] mtd: nand: implement the default mtd_ooblayout_ops Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 10:50 +0100
[PATCH v4 14/52] mtd: add mtd_set_ecclayout() helper function Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 10:50 +0100
[PATCH v4 32/52] mtd: nand: docg4: switch to mtd_ooblayout_ops Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
[PATCH v4 39/52] mtd: nand: jz4780: switch to mtd_ooblayout_ops Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
[PATCH v4 24/52] mtd: nand: jz4740: switch to mtd_ooblayout_ops Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
[PATCH v4 29/52] mtd: nand: davinci: switch to mtd_ooblayout_ops Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
[PATCH v4 42/52] mtd: nand: omap2: switch to mtd_ooblayout_ops Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
[PATCH v4 43/52] mtd: nand: pxa3xx: switch to mtd_ooblayout_ops Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
[PATCH v4 50/52] staging: mt29f_spinand: switch to mtd_ooblayout_ops Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
[PATCH v4 25/52] mtd: nand: atmel: switch to mtd_ooblayout_ops Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
[PATCH v4 26/52] mtd: nand: bf5xx: switch to mtd_ooblayout_ops Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
[PATCH v4 45/52] mtd: nand: sh_flctl: switch to mtd_ooblayout_ops Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
[PATCH v4 41/52] mtd: nand: mxc: switch to mtd_ooblayout_ops Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
[PATCH v4 37/52] mtd: nand: gpmi: switch to mtd_ooblayout_ops Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
[PATCH v4 31/52] mtd: nand: diskonchip: switch to mtd_ooblayout_ops Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
[PATCH v4 51/52] mtd: nand: kill the ecc->layout field Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
[PATCH v4 36/52] mtd: nand: fsmc: get rid of the fsmc_nand_eccplace struct Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
[PATCH v4 20/52] mtd: docg3: switch to mtd_ooblayout_ops Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
[PATCH v4 35/52] mtd: nand: fsmc: switch to mtd_ooblayout_ops Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
[PATCH v4 34/52] mtd: nand: fsl_ifc: switch to mtd_ooblayout_ops Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
[PATCH v4 46/52] mtd: nand: sm_common: switch to mtd_ooblayout_ops Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
[PATCH v4 44/52] mtd: nand: s3c2410: switch to mtd_ooblayout_ops Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
[PATCH v4 52/52] mtd: kill the nand_ecclayout struct Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
[PATCH v4 28/52] mtd: nand: cafe: switch to mtd_ooblayout_ops Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
[PATCH v4 40/52] mtd: nand: lpc32xx: switch to mtd_ooblayout_ops Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
[PATCH v4 49/52] mtd: onenand: switch to mtd_ooblayout_ops Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
[PATCH v4 48/52] mtd: nand: vf610: switch to mtd_ooblayout_ops Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
Re: [PATCH v4 48/52] mtd: nand: vf610: switch to mtd_ooblayout_ops Stefan Agner <stefan@agner.ch> - 2016-03-07 19:10 +0100
[PATCH v4 47/52] mtd: nand: sunxi: switch to mtd_ooblayout_ops Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
[PATCH v4 30/52] mtd: nand: denali: switch to mtd_ooblayout_ops Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
[PATCH v4 38/52] mtd: nand: hisi504: switch to mtd_ooblayout_ops Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:00 +0100
[PATCH v4 23/52] mtd: nand: sharpsl: switch to mtd_ooblayout_ops Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:10 +0100
[PATCH v4 10/52] mtd: nand: gpmi: use mtd_ooblayout_xxx() helpers where appropriate Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:10 +0100
[PATCH v4 03/52] mtd: mtdswap: remove useless if (!mtd->ecclayout) test Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:10 +0100
[PATCH v4 18/52] mtd: docg3: use mtd_set_ecclayout() where appropriate Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:10 +0100
[PATCH v4 13/52] mtd: onenand: use mtd_ooblayout_xxx() helpers where appropriate Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:10 +0100
[PATCH v4 17/52] mtd: onenand: use mtd_set_ecclayout() where appropriate Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:10 +0100
[PATCH v4 04/52] mtd: nand: simplify nand_bch_init() usage Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:10 +0100
[PATCH v4 06/52] mtd: use mtd_ooblayout_xxx() helpers where appropriate Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:10 +0100
[PATCH v4 05/52] mtd: add mtd_ooblayout_xxx() helper functions Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:10 +0100
[PATCH v4 19/52] mtd: create an mtd_ooblayout_ops struct to ease ECC layout definition Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:10 +0100
[PATCH v4 07/52] mtd: nand: core: use mtd_ooblayout_xxx() helpers where appropriate Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:10 +0100
[PATCH v4 16/52] mtd: nand: use mtd_set_ecclayout() where appropriate Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-03-07 11:10 +0100
Re: [PATCH v4 00/52] mtd: rework ECC layout definition Brian Norris <computersforpeace@gmail.com> - 2016-03-10 20:10 +0100
csiph-web