Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 84282
b: refs/heads/master
c: 5eb9103
h: refs/heads/master
v: v3
  • Loading branch information
Bryan Wu authored and David Woodhouse committed Feb 3, 2008
1 parent a33e1d7 commit b0a9b2e
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 7 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f4dda0914e76feb1ff5ec349cc68f319f6a4e40f
refs/heads/master: 5eb91034f3d825f43b3c8ace7b69f94752b7deda
16 changes: 10 additions & 6 deletions trunk/drivers/mtd/nand/bf5xx_nand.c
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,6 @@ static int bf5xx_nand_calculate_ecc(struct mtd_info *mtd,
u16 ecc0, ecc1;
u32 code[2];
u8 *p;
int bytes = 3, i;

/* first 4 bytes ECC code for 256 page size */
ecc0 = bfin_read_NFC_ECC0();
Expand All @@ -303,19 +302,24 @@ static int bf5xx_nand_calculate_ecc(struct mtd_info *mtd,

dev_dbg(info->device, "returning ecc 0x%08x\n", code[0]);

/* first 3 bytes in ecc_code for 256 page size */
p = (u8 *) code;
memcpy(ecc_code, p, 3);

/* second 4 bytes ECC code for 512 page size */
if (page_size == 512) {
ecc0 = bfin_read_NFC_ECC2();
ecc1 = bfin_read_NFC_ECC3();
code[1] = (ecc0 & 0x3FF) | ((ecc1 & 0x3FF) << 11);
bytes = 6;

/* second 3 bytes in ecc_code for second 256
* bytes of 512 page size
*/
p = (u8 *) (code + 1);
memcpy((ecc_code + 3), p, 3);
dev_dbg(info->device, "returning ecc 0x%08x\n", code[1]);
}

p = (u8 *)code;
for (i = 0; i < bytes; i++)
ecc_code[i] = p[i];

return 0;
}

Expand Down

0 comments on commit b0a9b2e

Please sign in to comment.