| From 543e32d5ff165d0d68deedb0e3557478c7c36a4a Mon Sep 17 00:00:00 2001 |
| From: Daniel Mack <zonque@gmail.com> |
| Date: Tue, 7 Jun 2011 03:01:07 -0700 |
| Subject: mtd: pxa3xx_nand: Fix blank page ECC mismatch |
| |
| From: Daniel Mack <zonque@gmail.com> |
| |
| commit 543e32d5ff165d0d68deedb0e3557478c7c36a4a upstream. |
| |
| This bug was introduced in f8155a40 ("mtd: pxa3xx_nand: rework irq |
| logic") and causes the PXA3xx NAND controller fail to operate with NAND |
| flash that has empty pages. According to the comment in this block, the |
| hardware controller will report a double-bit error for empty pages, |
| which can and must be ignored. |
| |
| This patch restores the original behaviour of the driver. |
| |
| Signed-off-by: Daniel Mack <zonque@gmail.com> |
| Acked-by: Lei Wen <leiwen@marvell.com> |
| Cc: Haojian Zhuang <haojian.zhuang@marvell.com> |
| Cc: David Woodhouse <David.Woodhouse@intel.com> |
| Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/mtd/nand/pxa3xx_nand.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| --- a/drivers/mtd/nand/pxa3xx_nand.c |
| +++ b/drivers/mtd/nand/pxa3xx_nand.c |
| @@ -685,6 +685,8 @@ static int pxa3xx_nand_read_page_hwecc(s |
| * OOB, ignore such double bit errors |
| */ |
| if (is_buf_blank(buf, mtd->writesize)) |
| + info->retcode = ERR_NONE; |
| + else |
| mtd->ecc_stats.failed++; |
| } |
| |