diff options
| author | Christian Hitz <christian.hitz@aizo.com> | 2011-10-12 09:31:59 +0200 | 
|---|---|---|
| committer | Scott Wood <scottwood@freescale.com> | 2012-01-26 16:09:02 -0600 | 
| commit | 4c6de8560cb42a6b6c2d565d41b6801e4b02d4b3 (patch) | |
| tree | 1244963352384b2b50a920020bab7370918c303e /include/linux/mtd/nand.h | |
| parent | 4d2aee2b3681234691b102194cc2f14857272828 (diff) | |
| download | olio-uboot-2014.01-4c6de8560cb42a6b6c2d565d41b6801e4b02d4b3.tar.xz olio-uboot-2014.01-4c6de8560cb42a6b6c2d565d41b6801e4b02d4b3.zip | |
nand: Merge BCH code from Linux nand driver
[backport from linux commit 02f8c6aee8df3cdc935e9bdd4f2d020306035dbe]
This patch merges the BCH ECC algorithm from the 3.0 Linux kernel.
This enables U-Boot to support modern NAND flash chips that
require more than 1-bit of ECC in software.
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/nand.h')
| -rw-r--r-- | include/linux/mtd/nand.h | 10 | 
1 files changed, 3 insertions, 7 deletions
| diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h index 1cdc7ae27..527d9ae03 100644 --- a/include/linux/mtd/nand.h +++ b/include/linux/mtd/nand.h @@ -18,13 +18,6 @@  #ifndef __LINUX_MTD_NAND_H  #define __LINUX_MTD_NAND_H -/* XXX U-BOOT XXX */ -#if 0 -#include <linux/wait.h> -#include <linux/spinlock.h> -#include <linux/mtd/mtd.h> -#endif -  #include "config.h"  #include "linux/mtd/compat.h" @@ -132,6 +125,7 @@ typedef enum {  	NAND_ECC_HW,  	NAND_ECC_HW_SYNDROME,  	NAND_ECC_HW_OOB_FIRST, +	NAND_ECC_SOFT_BCH,  } nand_ecc_modes_t;  /* @@ -308,6 +302,7 @@ struct nand_hw_control {   * @prepad:	padding information for syndrome based ecc generators   * @postpad:	padding information for syndrome based ecc generators   * @layout:	ECC layout control struct pointer + * @priv:       pointer to private ecc control data   * @hwctl:	function to control hardware ecc generator. Must only   *		be provided if an hardware ECC is available   * @calculate:	function for ecc calculation or readback from ecc hardware @@ -328,6 +323,7 @@ struct nand_ecc_ctrl {  	int			prepad;  	int			postpad;  	struct nand_ecclayout	*layout; +	void			*priv;  	void			(*hwctl)(struct mtd_info *mtd, int mode);  	int			(*calculate)(struct mtd_info *mtd,  					     const uint8_t *dat, |