diff options
| author | Christian Hitz <christian.hitz@aizo.com> | 2011-10-12 09:32:06 +0200 | 
|---|---|---|
| committer | Scott Wood <scottwood@freescale.com> | 2012-01-26 16:09:02 -0600 | 
| commit | 4fee6c2f295f932b8febdc7ce8731ba045695fa5 (patch) | |
| tree | fe22f449863d8caf75e010b81b55f1180592352b /include/linux/mtd | |
| parent | 5454ddbc9b6be1b3a8fe1018bda697ac2b33b202 (diff) | |
| download | olio-uboot-2014.01-4fee6c2f295f932b8febdc7ce8731ba045695fa5.tar.xz olio-uboot-2014.01-4fee6c2f295f932b8febdc7ce8731ba045695fa5.zip | |
nand: make 1-bit software ECC configurable
The software ECC algorithm is not necessary when hardware ECC
is available and can be left out for a smaller image size.
Enable with CONFIG_MTD_ECC_SOFT.
Signed-off-by: Christian Hitz <christian.hitz@aizo.com>
Cc: Scott Wood <scottwood@freescale.com>
Signed-off-by: Scott Wood <scottwood@freescale.com>
Diffstat (limited to 'include/linux/mtd')
| -rw-r--r-- | include/linux/mtd/nand_ecc.h | 25 | 
1 files changed, 25 insertions, 0 deletions
| diff --git a/include/linux/mtd/nand_ecc.h b/include/linux/mtd/nand_ecc.h index 090da5054..9715a53d8 100644 --- a/include/linux/mtd/nand_ecc.h +++ b/include/linux/mtd/nand_ecc.h @@ -15,6 +15,10 @@  struct mtd_info; +#if defined(CONFIG_MTD_ECC_SOFT) + +static inline int mtd_nand_has_ecc_soft(void) { return 1; } +  /*   * Calculate 3 byte ECC code for 256 byte block   */ @@ -25,4 +29,25 @@ int nand_calculate_ecc(struct mtd_info *mtd, const u_char *dat, u_char *ecc_code   */  int nand_correct_data(struct mtd_info *mtd, u_char *dat, u_char *read_ecc, u_char *calc_ecc); +#else + +static inline int mtd_nand_has_ecc_soft(void) { return 0; } + +static inline int +nand_calculate_ecc(struct mtd_info *mtd, const u_char *dat, u_char *ecc_code) +{ +	return -1; +} + +static inline int +nand_correct_data(struct mtd_info *mtd, +			u_char *dat, +			u_char *read_ecc, +			u_char *calc_ecc) +{ +	return -1; +} + +#endif +  #endif /* __MTD_NAND_ECC_H__ */ |