[MTD] [NAND] Blackfin NFC Driver: fix bug - hw ecc calc by making sure we extract...
authorMike Frysinger <vapier.adi@gmail.com>
Wed, 30 Jul 2008 19:35:00 +0000 (12:35 -0700)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Fri, 1 Aug 2008 14:40:42 +0000 (15:40 +0100)
Signed-off-by: Mike Frysinger <vapier.adi@gmail.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/mtd/nand/bf5xx_nand.c

index 3254348..fc58afe 100644 (file)
@@ -298,7 +298,7 @@ static int bf5xx_nand_calculate_ecc(struct mtd_info *mtd,
        ecc0 = bfin_read_NFC_ECC0();
        ecc1 = bfin_read_NFC_ECC1();
 
-       code[0] = (ecc0 & 0x3FF) | ((ecc1 & 0x3FF) << 11);
+       code[0] = (ecc0 & 0x7ff) | ((ecc1 & 0x7ff) << 11);
 
        dev_dbg(info->device, "returning ecc 0x%08x\n", code[0]);
 
@@ -310,7 +310,7 @@ static int bf5xx_nand_calculate_ecc(struct mtd_info *mtd,
        if (page_size == 512) {
                ecc0 = bfin_read_NFC_ECC2();
                ecc1 = bfin_read_NFC_ECC3();
-               code[1] = (ecc0 & 0x3FF) | ((ecc1 & 0x3FF) << 11);
+               code[1] = (ecc0 & 0x7ff) | ((ecc1 & 0x7ff) << 11);
 
                /* second 3 bytes in ecc_code for second 256
                 * bytes of 512 page size