aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mtd/nand
diff options
context:
space:
mode:
authorHuang Shijie <b32955@freescale.com>2013-05-17 11:17:26 +0800
committerDavid Woodhouse <David.Woodhouse@intel.com>2013-08-30 21:34:38 +0100
commit10c86babfb21a07272495a968114f677313bea51 (patch)
tree590b265a004de4e6c6a3ea872812aa41c4f20155 /drivers/mtd/nand
parentmtd: add datasheet's ECC information to nand_chip{} (diff)
downloadlinux-dev-10c86babfb21a07272495a968114f677313bea51.tar.xz
linux-dev-10c86babfb21a07272495a968114f677313bea51.zip
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@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>
Diffstat (limited to 'drivers/mtd/nand')
-rw-r--r--drivers/mtd/nand/nand_base.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index 9a487580e370..42d44bb40873 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;
}