From 1820cf22ce9a7e4ba075cf7a9a9f95a4859e34f1 Mon Sep 17 00:00:00 2001 From: Han Xu Date: Mon, 28 Mar 2016 11:26:51 -0500 Subject: MLK-12603: mtd: gpmi: may use legacy bch geometry in u-boot provide one config "CONFIG_NAND_MXS_BCH_LEGACY_GEO" to keep using legacy bch geometry. NOTICE: the feature must be enabled/disabled in both u-boot and kernel. Signed-off-by: Han Xu --- drivers/mtd/nand/mxs_nand.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/mtd/nand/mxs_nand.c b/drivers/mtd/nand/mxs_nand.c index d81f83c..5bba8c5 100644 --- a/drivers/mtd/nand/mxs_nand.c +++ b/drivers/mtd/nand/mxs_nand.c @@ -7,7 +7,7 @@ * Based on code from LTIB: * Freescale GPMI NFC NAND Flash Driver * - * Copyright (C) 2010-2015 Freescale Semiconductor, Inc. + * Copyright (C) 2010-2016 Freescale Semiconductor, Inc. * Copyright (C) 2008 Embedded Alley Solutions, Inc. * * SPDX-License-Identifier: GPL-2.0+ @@ -248,6 +248,12 @@ static int mxs_nand_get_ecc_strength(struct mtd_info *mtd) } else { ecc_strength = chip->ecc_strength_ds; ecc_strength += ecc_strength & 1; +#if defined(CONFIG_NAND_MXS_BCH_LEGACY_GEO) + ecc_strength = ((page_oob_size - MXS_NAND_METADATA_SIZE) * 8) + /(galois_field * mxs_nand_ecc_chunk_cnt(mtd->writesize)); + ecc_strength += ecc_strength & 1; + ecc_strength = min(ecc_strength, MXS_NAND_MAX_ECC_STRENGTH); +#endif } return 0; }; -- cgit v1.1