diff options
author | Raphael Poggi <poggi.raph@gmail.com> | 2014-07-17 14:12:20 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2014-07-18 07:35:33 +0200 |
commit | d581be714390fed896cf4a61fa6b81b613949898 (patch) | |
tree | ed13f436990d1a0dfb29874d28a847c783f8d0dc /drivers/mtd/nand/atmel_nand.c | |
parent | c280f534127add4a01473e729756f61fc52144a7 (diff) | |
download | barebox-d581be714390fed896cf4a61fa6b81b613949898.tar.gz barebox-d581be714390fed896cf4a61fa6b81b613949898.tar.xz |
mtd: atmel_nand: fix bit error correction
When pmecc uses a 1024 sector size to correct bit error, the gf dimension
must be 14.
So this commit chooses the right degree for different sector size (512 or 1024).
Signed-off-by: Raphaƫl Poggi <poggi.raph@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/mtd/nand/atmel_nand.c')
-rw-r--r-- | drivers/mtd/nand/atmel_nand.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/mtd/nand/atmel_nand.c b/drivers/mtd/nand/atmel_nand.c index a02f38fc42..1ce7d4d49d 100644 --- a/drivers/mtd/nand/atmel_nand.c +++ b/drivers/mtd/nand/atmel_nand.c @@ -796,7 +796,8 @@ static int __init atmel_pmecc_nand_init_params(struct device_d *dev, switch (mtd->writesize) { case 2048: case 4096: - host->pmecc_degree = PMECC_GF_DIMENSION_13; + host->pmecc_degree = (sector_size == 512) ? + PMECC_GF_DIMENSION_13 : PMECC_GF_DIMENSION_14; host->pmecc_cw_len = (1 << host->pmecc_degree) - 1; host->pmecc_sector_number = mtd->writesize / sector_size; host->pmecc_bytes_per_sector = pmecc_get_ecc_bytes( |