mtd: get the ECC info from the parameter page for ONFI nand
authorHuang Shijie <b32955@freescale.com>
Fri, 17 May 2013 03:17:26 +0000 (11:17 +0800)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Fri, 30 Aug 2013 20:34:38 +0000 (21:34 +0100)
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@freescale.com>
Reviewed-and-tested-by: Brian Norris <computersforpeace@gmail.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/mtd/nand/nand_base.c

index 9a487580e370c28b8ff0d355cf5c901f816313d6..42d44bb40873af12db6213ab228dcfa4c34fb54a 100644 (file)
@@ -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;
 }