On 17 April 2016 at 19:05, Boris Brezillon <boris.brezil...@free-electrons.com> wrote: > On Fri, 15 Apr 2016 21:54:12 +0200 > Rafał Miłecki <zaj...@gmail.com> wrote: > >> This value should not be part of nand_ecc_modes_t as it specifies >> algorithm not a mode. We successfully managed to introduce new "algo" >> field which is respected now. >> >> Signed-off-by: Rafał Miłecki <zaj...@gmail.com> >> --- >> drivers/mtd/nand/fsmc_nand.c | 3 +-- >> drivers/mtd/nand/jz4780_nand.c | 1 - >> drivers/mtd/nand/nand_base.c | 2 -- >> drivers/mtd/nand/nandsim.c | 2 +- >> drivers/mtd/nand/sunxi_nand.c | 2 -- >> include/linux/mtd/nand.h | 1 - >> 6 files changed, 2 insertions(+), 9 deletions(-) >> >> diff --git a/drivers/mtd/nand/fsmc_nand.c b/drivers/mtd/nand/fsmc_nand.c >> index 0f8c63f..d4f454a 100644 >> --- a/drivers/mtd/nand/fsmc_nand.c >> +++ b/drivers/mtd/nand/fsmc_nand.c >> @@ -959,7 +959,6 @@ static int __init fsmc_nand_probe(struct platform_device >> *pdev) >> break; >> >> case NAND_ECC_SOFT: >> - case NAND_ECC_SOFT_BCH: >> if (nand->ecc.algo == NAND_ECC_BCH) { >> dev_info(&pdev->dev, "Using 4-bit SW BCH ECC >> scheme\n"); >> break; >> @@ -974,7 +973,7 @@ static int __init fsmc_nand_probe(struct platform_device >> *pdev) >> * Don't set layout for BCH4 SW ECC. This will be >> * generated later in nand_bch_init() later. >> */ >> - if (nand->ecc.mode != NAND_ECC_SOFT_BCH) { >> + if (nand->ecc.mode == NAND_ECC_HW) { > > This test is wrong, it should be > > if (nand->ecc.mode != NAND_ECC_SOFT || > nand->ecc.algo != NAND_ECC_BCH) > > or > if (!(nand->ecc.mode == NAND_ECC_SOFT && > nand->ecc.algo == NAND_ECC_BCH)
This driver supports only 2 modes (see switch above).