mtd: nand: add a shorthand to generate nand_ecc_caps structure
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Wed, 7 Jun 2017 11:52:11 +0000 (20:52 +0900)
committerBoris Brezillon <boris.brezillon@free-electrons.com>
Sat, 10 Jun 2017 11:40:10 +0000 (13:40 +0200)
commita03c60178c181767ecfb26fb311a88742d228118
tree1111a80b5cbe430ad8dbe34764c64b9a39c0c05e
parent2c8f8afa7f92acb07641bf95b940d384ed1d0294
mtd: nand: add a shorthand to generate nand_ecc_caps structure

struct nand_ecc_caps was designed as flexible as possible to support
multiple stepsizes (like sunxi_nand.c).

So, we need to write multiple arrays even for the simplest case.
I guess many controllers support a single stepsize, so here is a
shorthand macro for the case.

It allows to describe like ...

NAND_ECC_CAPS_SINGLE(denali_pci_ecc_caps, denali_calc_ecc_bytes, 512, 8, 15);

... instead of

static const int denali_pci_ecc_strengths[] = {8, 15};
static const struct nand_ecc_step_info denali_pci_ecc_stepinfo = {
        .stepsize = 512,
        .strengths = denali_pci_ecc_strengths,
        .nstrengths = ARRAY_SIZE(denali_pci_ecc_strengths),
};
static const struct nand_ecc_caps denali_pci_ecc_caps = {
        .stepinfos = &denali_pci_ecc_stepinfo,
        .nstepinfos = 1,
        .calc_ecc_bytes = denali_calc_ecc_bytes,
};

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
include/linux/mtd/nand.h