diff options
| author | Tom Rini <trini@ti.com> | 2013-05-31 18:28:47 -0400 | 
|---|---|---|
| committer | Tom Rini <trini@ti.com> | 2013-05-31 18:28:47 -0400 | 
| commit | d6639d10dbfa42dc888f8917012550b632a88959 (patch) | |
| tree | 3c971dcfad4d7ad58570e8d5b0318f58370f9d3d /drivers/mtd/nand/mxs_nand.c | |
| parent | 3da0e5750b24a9491058df6126c7be577a276c09 (diff) | |
| parent | dfe64e2c89731a3f9950d7acd8681b68df2bae03 (diff) | |
| download | olio-uboot-2014.01-d6639d10dbfa42dc888f8917012550b632a88959.tar.xz olio-uboot-2014.01-d6639d10dbfa42dc888f8917012550b632a88959.zip | |
Merge branch 'master' of git://git.denx.de/u-boot-nand-flash
Diffstat (limited to 'drivers/mtd/nand/mxs_nand.c')
| -rw-r--r-- | drivers/mtd/nand/mxs_nand.c | 34 | 
1 files changed, 19 insertions, 15 deletions
| diff --git a/drivers/mtd/nand/mxs_nand.c b/drivers/mtd/nand/mxs_nand.c index 398e4ddc1..866cabd27 100644 --- a/drivers/mtd/nand/mxs_nand.c +++ b/drivers/mtd/nand/mxs_nand.c @@ -553,7 +553,8 @@ static uint8_t mxs_nand_read_byte(struct mtd_info *mtd)   * Read a page from NAND.   */  static int mxs_nand_ecc_read_page(struct mtd_info *mtd, struct nand_chip *nand, -					uint8_t *buf, int page) +					uint8_t *buf, int oob_required, +					int page)  {  	struct mxs_nand_info *nand_info = nand->priv;  	struct mxs_dma_desc *d; @@ -698,8 +699,9 @@ rtn:  /*   * Write a page to NAND.   */ -static void mxs_nand_ecc_write_page(struct mtd_info *mtd, -				struct nand_chip *nand, const uint8_t *buf) +static int mxs_nand_ecc_write_page(struct mtd_info *mtd, +				struct nand_chip *nand, const uint8_t *buf, +				int oob_required)  {  	struct mxs_nand_info *nand_info = nand->priv;  	struct mxs_dma_desc *d; @@ -755,6 +757,7 @@ static void mxs_nand_ecc_write_page(struct mtd_info *mtd,  rtn:  	mxs_nand_return_dma_descs(nand_info); +	return 0;  }  /* @@ -770,7 +773,7 @@ static int mxs_nand_hook_read_oob(struct mtd_info *mtd, loff_t from,  	struct mxs_nand_info *nand_info = chip->priv;  	int ret; -	if (ops->mode == MTD_OOB_RAW) +	if (ops->mode == MTD_OPS_RAW)  		nand_info->raw_oob_mode = 1;  	else  		nand_info->raw_oob_mode = 0; @@ -795,7 +798,7 @@ static int mxs_nand_hook_write_oob(struct mtd_info *mtd, loff_t to,  	struct mxs_nand_info *nand_info = chip->priv;  	int ret; -	if (ops->mode == MTD_OOB_RAW) +	if (ops->mode == MTD_OPS_RAW)  		nand_info->raw_oob_mode = 1;  	else  		nand_info->raw_oob_mode = 0; @@ -873,7 +876,7 @@ static int mxs_nand_hook_block_markbad(struct mtd_info *mtd, loff_t ofs)   * what to do.   */  static int mxs_nand_ecc_read_oob(struct mtd_info *mtd, struct nand_chip *nand, -				int page, int cmd) +				int page)  {  	struct mxs_nand_info *nand_info = nand->priv; @@ -1006,19 +1009,19 @@ static int mxs_nand_scan_bbt(struct mtd_info *mtd)  	writel(BCH_CTRL_COMPLETE_IRQ_EN, &bch_regs->hw_bch_ctrl_set);  	/* Hook some operations at the MTD level. */ -	if (mtd->read_oob != mxs_nand_hook_read_oob) { -		nand_info->hooked_read_oob = mtd->read_oob; -		mtd->read_oob = mxs_nand_hook_read_oob; +	if (mtd->_read_oob != mxs_nand_hook_read_oob) { +		nand_info->hooked_read_oob = mtd->_read_oob; +		mtd->_read_oob = mxs_nand_hook_read_oob;  	} -	if (mtd->write_oob != mxs_nand_hook_write_oob) { -		nand_info->hooked_write_oob = mtd->write_oob; -		mtd->write_oob = mxs_nand_hook_write_oob; +	if (mtd->_write_oob != mxs_nand_hook_write_oob) { +		nand_info->hooked_write_oob = mtd->_write_oob; +		mtd->_write_oob = mxs_nand_hook_write_oob;  	} -	if (mtd->block_markbad != mxs_nand_hook_block_markbad) { -		nand_info->hooked_block_markbad = mtd->block_markbad; -		mtd->block_markbad = mxs_nand_hook_block_markbad; +	if (mtd->_block_markbad != mxs_nand_hook_block_markbad) { +		nand_info->hooked_block_markbad = mtd->_block_markbad; +		mtd->_block_markbad = mxs_nand_hook_block_markbad;  	}  	/* We use the reference implementation for bad block management. */ @@ -1172,6 +1175,7 @@ int board_nand_init(struct nand_chip *nand)  	nand->ecc.mode		= NAND_ECC_HW;  	nand->ecc.bytes		= 9;  	nand->ecc.size		= 512; +	nand->ecc.strength	= 8;  	return 0; |