mtd: get the ECC info from the parameter page for ONFI nand

Linux-MTD Mailing List linux-mtd at lists.infradead.org
Fri Aug 30 16:59:02 EDT 2013


Gitweb:     http://git.infradead.org/?p=mtd-2.6.git;a=commit;h=10c86babfb21a07272495a968114f677313bea51
Commit:     10c86babfb21a07272495a968114f677313bea51
Parent:     4cfeca2d58de8292f45351f84e84f657222a4611
Author:     Huang Shijie <b32955 at freescale.com>
AuthorDate: Fri May 17 11:17:26 2013 +0800
Committer:  David Woodhouse <David.Woodhouse at intel.com>
CommitDate: Fri Aug 30 21:34:38 2013 +0100

    mtd: get the ECC info from the parameter page for ONFI nand
    
    From the ONFI spec, we can just get the ECC info from the @ecc_bits field of
    the parameter page.
    
    Signed-off-by: Huang Shijie <b32955 at freescale.com>
    Reviewed-and-tested-by: Brian Norris <computersforpeace at gmail.com>
    Signed-off-by: Brian Norris <computersforpeace at gmail.com>
    Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
---
 drivers/mtd/nand/nand_base.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index 9a48758..42d44bb 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -2913,6 +2913,11 @@ static int nand_flash_detect_onfi(struct mtd_info *mtd, struct nand_chip *chip,
 	if (le16_to_cpu(p->features) & 1)
 		*busw = NAND_BUSWIDTH_16;
 
+	if (p->ecc_bits != 0xff) {
+		chip->ecc_strength_ds = p->ecc_bits;
+		chip->ecc_step_ds = 512;
+	}
+
 	pr_info("ONFI flash detected\n");
 	return 1;
 }



More information about the linux-mtd-cvs mailing list