diff options
| author | Stefano Babic <sbabic@denx.de> | 2012-12-08 12:02:45 +0100 | 
|---|---|---|
| committer | Stefano Babic <sbabic@denx.de> | 2012-12-08 12:02:45 +0100 | 
| commit | 05a860c228fe6c8f2e7aced8cc8ef88bc1038363 (patch) | |
| tree | 764536da9202b9de387a0d957829f64dfba818b7 /drivers/mtd/nand/nand_base.c | |
| parent | 393ff47ba3123208f7c4f08d63f114300a41d0c4 (diff) | |
| parent | fd4d564b3c80b111f18c93adb14233a6a7ddb0e9 (diff) | |
| download | olio-uboot-2014.01-05a860c228fe6c8f2e7aced8cc8ef88bc1038363.tar.xz olio-uboot-2014.01-05a860c228fe6c8f2e7aced8cc8ef88bc1038363.zip | |
Merge branch 'master' of git://git.denx.de/u-boot into master
Conflicts:
	drivers/power/power_fsl.c
	include/configs/mx35pdk.h
	include/configs/mx53loco.h
	include/configs/woodburn_common.h
	board/woodburn/woodburn.c
These boards still use the old old PMIC framework, so they
do not merge properly after the power framework was merged into
mainline.
Fix all conflicts and update woodburn to use Power Framework.
Signed-off-by: Stefano Babic <sbabic@denx.de>
Diffstat (limited to 'drivers/mtd/nand/nand_base.c')
| -rw-r--r-- | drivers/mtd/nand/nand_base.c | 9 | 
1 files changed, 7 insertions, 2 deletions
| diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c index d3b71a50a..a2d06be99 100644 --- a/drivers/mtd/nand/nand_base.c +++ b/drivers/mtd/nand/nand_base.c @@ -1245,7 +1245,8 @@ static int nand_do_read_ops(struct mtd_info *mtd, loff_t from,  			if (unlikely(ops->mode == MTD_OOB_RAW))  				ret = chip->ecc.read_page_raw(mtd, chip,  							      bufpoi, page); -			else if (!aligned && NAND_SUBPAGE_READ(chip) && !oob) +			else if (!aligned && NAND_HAS_SUBPAGE_READ(chip) && +			    !oob)  				ret = chip->ecc.read_subpage(mtd, chip,  							col, bytes, bufpoi);  			else @@ -1256,7 +1257,7 @@ static int nand_do_read_ops(struct mtd_info *mtd, loff_t from,  			/* Transfer not aligned data */  			if (!aligned) { -				if (!NAND_SUBPAGE_READ(chip) && !oob && +				if (!NAND_HAS_SUBPAGE_READ(chip) && !oob &&  				    !(mtd->ecc_stats.failed - stats.failed))  					chip->pagebuf = realpage;  				memcpy(buf, chip->buffers->databuf + col, bytes); @@ -3150,6 +3151,10 @@ int nand_scan_tail(struct mtd_info *mtd)  	/* Invalidate the pagebuffer reference */  	chip->pagebuf = -1; +	/* Large page NAND with SOFT_ECC should support subpage reads */ +	if ((chip->ecc.mode == NAND_ECC_SOFT) && (chip->page_shift > 9)) +		chip->options |= NAND_SUBPAGE_READ; +  	/* Fill in remaining MTD driver data */  	mtd->type = MTD_NANDFLASH;  	mtd->flags = (chip->options & NAND_ROM) ? MTD_CAP_ROM : |