Commit cf840392 authored by Mike Frysinger's avatar Mike Frysinger Committed by David Woodhouse

[MTD] [NAND] Blackfin NFC Driver: fix bug - hw ecc calc by making sure we...

[MTD] [NAND] Blackfin NFC Driver: fix bug - hw ecc calc by making sure we extract 11 bits from each register instead of 10
Signed-off-by: default avatarMike Frysinger <vapier.adi@gmail.com>
Signed-off-by: default avatarBryan Wu <cooloney@kernel.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
parent e274f025
...@@ -298,7 +298,7 @@ static int bf5xx_nand_calculate_ecc(struct mtd_info *mtd, ...@@ -298,7 +298,7 @@ static int bf5xx_nand_calculate_ecc(struct mtd_info *mtd,
ecc0 = bfin_read_NFC_ECC0(); ecc0 = bfin_read_NFC_ECC0();
ecc1 = bfin_read_NFC_ECC1(); 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]); 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, ...@@ -310,7 +310,7 @@ static int bf5xx_nand_calculate_ecc(struct mtd_info *mtd,
if (page_size == 512) { if (page_size == 512) {
ecc0 = bfin_read_NFC_ECC2(); ecc0 = bfin_read_NFC_ECC2();
ecc1 = bfin_read_NFC_ECC3(); 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 /* second 3 bytes in ecc_code for second 256
* bytes of 512 page size * bytes of 512 page size
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment