diff options
Diffstat (limited to 'drivers/mtd/nand/fsl_elbc_nand.c')
| -rw-r--r-- | drivers/mtd/nand/fsl_elbc_nand.c | 17 | 
1 files changed, 9 insertions, 8 deletions
| diff --git a/drivers/mtd/nand/fsl_elbc_nand.c b/drivers/mtd/nand/fsl_elbc_nand.c index fb34d129b..0fa776ae9 100644 --- a/drivers/mtd/nand/fsl_elbc_nand.c +++ b/drivers/mtd/nand/fsl_elbc_nand.c @@ -640,9 +640,8 @@ static int fsl_elbc_wait(struct mtd_info *mtd, struct nand_chip *chip)  	return fsl_elbc_read_byte(mtd);  } -static int fsl_elbc_read_page(struct mtd_info *mtd, -			      struct nand_chip *chip, -			      uint8_t *buf, int page) +static int fsl_elbc_read_page(struct mtd_info *mtd, struct nand_chip *chip, +			      uint8_t *buf, int oob_required, int page)  {  	fsl_elbc_read_buf(mtd, buf, mtd->writesize);  	fsl_elbc_read_buf(mtd, chip->oob_poi, mtd->oobsize); @@ -656,12 +655,13 @@ static int fsl_elbc_read_page(struct mtd_info *mtd,  /* ECC will be calculated automatically, and errors will be detected in   * waitfunc.   */ -static void fsl_elbc_write_page(struct mtd_info *mtd, -				struct nand_chip *chip, -				const uint8_t *buf) +static int fsl_elbc_write_page(struct mtd_info *mtd, struct nand_chip *chip, +				const uint8_t *buf, int oob_required)  {  	fsl_elbc_write_buf(mtd, buf, mtd->writesize);  	fsl_elbc_write_buf(mtd, chip->oob_poi, mtd->oobsize); + +	return 0;  }  static struct fsl_elbc_ctrl *elbc_ctrl; @@ -747,8 +747,8 @@ static int fsl_elbc_chip_init(int devnum, u8 *addr)  	nand->bbt_md = &bbt_mirror_descr;    	/* set up nand options */ -	nand->options = NAND_NO_READRDY | NAND_NO_AUTOINCR | -			NAND_USE_FLASH_BBT | NAND_NO_SUBPAGE_WRITE; +	nand->options = NAND_NO_SUBPAGE_WRITE; +	nand->bbt_options = NAND_BBT_USE_FLASH;  	nand->controller = &elbc_ctrl->controller;  	nand->priv = priv; @@ -769,6 +769,7 @@ static int fsl_elbc_chip_init(int devnum, u8 *addr)  		nand->ecc.size = 512;  		nand->ecc.bytes = 3;  		nand->ecc.steps = 1; +		nand->ecc.strength = 1;  	} else {  		/* otherwise fall back to default software ECC */  		nand->ecc.mode = NAND_ECC_SOFT; |