[PATCH v13 0/2] MTD: at91: Add PMECC support for at91 nand flash driver
Josh Wu
josh.wu at atmel.com
Fri Jun 29 05:47:53 EDT 2012
Those patches is based on the l2-mtd.git three.
Changes
since v12,
fix compile warning.
fix compile error for sparse compiler:
drivers/mtd/nand/atmel_nand.c:480:32: error: bad constant expression [sparse]
drivers/mtd/nand/atmel_nand.c:488:35: error: bad constant expression [sparse]
drivers/mtd/nand/atmel_nand.c:633:32: error: bad constant expression [sparse]
drivers/mtd/nand/atmel_nand.c:635:35: error: bad constant expression [sparse]
the error is caused by the dynamic 2d array: smu[cap + 2][2 * cap + 1].
since the smu is allocated when driver is probed, and the length of the smu depend on PMECC correction capablity.
so when I declare the type of smu by following line: (cap is declared as const type)
int16_t (*smu)[2 * cap + 1];
Sparse compiler reports above errors.
for fixing this compile error, I use one dimention array instead of 2d array, for instance: all smu[i][j] changes to smu[i * num + j]. num equal to 2 * cap + 1.
I tested it in sparse 0.4.4
since v11,
add documentation for atmel nand reg parameter and one example for PMECC support.
fix the bug: no error reported when fail to get resoures of PMECC ERRLOC or ROM.
fix the bug: no correction when ecc data has bit flipped.
add clearer debug information for data correction.
Josh Wu (2):
MTD: at91: add dt parameters for Atmel PMECC
MTD: at91: atmel_nand: Update driver to support Programmable Multibit
ECC controller
.../devicetree/bindings/mtd/atmel-nand.txt | 40 +-
drivers/mtd/nand/atmel_nand.c | 799 +++++++++++++++++++-
drivers/mtd/nand/atmel_nand_ecc.h | 114 ++-
3 files changed, 949 insertions(+), 4 deletions(-)
--
1.7.9.5
More information about the linux-mtd
mailing list