Patchwork [2/7] mtd: nand: fix incorrect ecc strength values

login
register
mail settings
Submitter Mike Dunn
Date April 24, 2012, 7:18 p.m.
Message ID <1335295105-7981-3-git-send-email-mikedunn@newsguy.com>
Download mbox | patch
Permalink /patch/154749/
State New
Headers show

Comments

Mike Dunn - April 24, 2012, 7:18 p.m.
This fixes a couple of ecc strength values for which I earlier made conservative
guesses, but whose correct values were later determined [1] (thanks Ivan).  Also
sets strength for fsl_ifc_nand, which was merged to mainline after the original
patch that set the strength for all drivers.

[1] http://lists.infradead.org/pipermail/linux-mtd/2012-March/040325.html

Signed-off-by: Mike Dunn <mikedunn@newsguy.com>
---
 drivers/mtd/nand/bcm_umi_nand.c |    7 +------
 drivers/mtd/nand/fsl_ifc_nand.c |    1 +
 drivers/mtd/nand/jz4740_nand.c  |    6 +-----
 3 files changed, 3 insertions(+), 11 deletions(-)
Jiandong Zheng - May 1, 2012, 7:07 p.m.
On 4/24/2012 12:18 PM, Mike Dunn wrote:
> This fixes a couple of ecc strength values for which I earlier made conservative
> guesses, but whose correct values were later determined [1] (thanks Ivan).  Also
> sets strength for fsl_ifc_nand, which was merged to mainline after the original
> patch that set the strength for all drivers.
>
> [1] http://lists.infradead.org/pipermail/linux-mtd/2012-March/040325.html
>
> Signed-off-by: Mike Dunn<mikedunn@newsguy.com>
> ---
>   drivers/mtd/nand/bcm_umi_nand.c |    7 +------
>   drivers/mtd/nand/fsl_ifc_nand.c |    1 +
>   drivers/mtd/nand/jz4740_nand.c  |    6 +-----
>   3 files changed, 3 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/mtd/nand/bcm_umi_nand.c b/drivers/mtd/nand/bcm_umi_nand.c
> index 6908cdd..7134adf 100644
> --- a/drivers/mtd/nand/bcm_umi_nand.c
> +++ b/drivers/mtd/nand/bcm_umi_nand.c
> @@ -476,12 +476,7 @@ static int __devinit bcm_umi_nand_probe(struct platform_device *pdev)
>   		this->badblock_pattern =&largepage_bbt;
>   	}
>
> -	/*
> -	 * FIXME: ecc strength value of 6 bits per 512 bytes of data is a
> -	 * conservative guess, given 13 ecc bytes and using bch alg.
> -	 * (Assume Galois field order m=15 to allow a margin of error.)
> -	 */
> -	this->ecc.strength = 6;
> +	this->ecc.strength = 8;
>
>   #endif
>
>
Acked-by: Jiandong Zheng <jdzheng@broadcom.com>

Patch

diff --git a/drivers/mtd/nand/bcm_umi_nand.c b/drivers/mtd/nand/bcm_umi_nand.c
index 6908cdd..7134adf 100644
--- a/drivers/mtd/nand/bcm_umi_nand.c
+++ b/drivers/mtd/nand/bcm_umi_nand.c
@@ -476,12 +476,7 @@  static int __devinit bcm_umi_nand_probe(struct platform_device *pdev)
 		this->badblock_pattern = &largepage_bbt;
 	}
 
-	/*
-	 * FIXME: ecc strength value of 6 bits per 512 bytes of data is a
-	 * conservative guess, given 13 ecc bytes and using bch alg.
-	 * (Assume Galois field order m=15 to allow a margin of error.)
-	 */
-	this->ecc.strength = 6;
+	this->ecc.strength = 8;
 
 #endif
 
diff --git a/drivers/mtd/nand/fsl_ifc_nand.c b/drivers/mtd/nand/fsl_ifc_nand.c
index 5387cec..872cc96 100644
--- a/drivers/mtd/nand/fsl_ifc_nand.c
+++ b/drivers/mtd/nand/fsl_ifc_nand.c
@@ -821,6 +821,7 @@  static int fsl_ifc_chip_init(struct fsl_ifc_mtd *priv)
 	/* Hardware generates ECC per 512 Bytes */
 	chip->ecc.size = 512;
 	chip->ecc.bytes = 8;
+	chip->ecc.strength = 4;
 
 	switch (csor & CSOR_NAND_PGS_MASK) {
 	case CSOR_NAND_PGS_512:
diff --git a/drivers/mtd/nand/jz4740_nand.c b/drivers/mtd/nand/jz4740_nand.c
index e4147e8..a6fa884 100644
--- a/drivers/mtd/nand/jz4740_nand.c
+++ b/drivers/mtd/nand/jz4740_nand.c
@@ -332,11 +332,7 @@  static int __devinit jz_nand_probe(struct platform_device *pdev)
 	chip->ecc.mode		= NAND_ECC_HW_OOB_FIRST;
 	chip->ecc.size		= 512;
 	chip->ecc.bytes		= 9;
-	chip->ecc.strength	= 2;
-	/*
-	 * FIXME: ecc_strength value of 2 bits per 512 bytes of data is a
-	 * conservative guess, given 9 ecc bytes and reed-solomon alg.
-	 */
+	chip->ecc.strength	= 4;
 
 	if (pdata)
 		chip->ecc.layout = pdata->ecc_layout;