diff options
| author | Benoît Thébaudeau <benoit.thebaudeau@advansee.com> | 2013-04-11 09:35:41 +0000 | 
|---|---|---|
| committer | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2013-04-12 07:55:05 +0200 | 
| commit | 3ec9d6eb09ca799f2632a58012ef9603982a642d (patch) | |
| tree | 537e1515ec976485d18d2edb8a196a1f9e328b4a /drivers | |
| parent | 78ee7b1729f69215a07c44b9895f69bd9a4b58a2 (diff) | |
| download | olio-uboot-2014.01-3ec9d6eb09ca799f2632a58012ef9603982a642d.tar.xz olio-uboot-2014.01-3ec9d6eb09ca799f2632a58012ef9603982a642d.zip | |
nand: mxc: Use appropriate page number in syndrome functions
The syndrome functions should use the page number passed as argument instead of
the page number saved upon NAND_CMD_READ0.
This does not make any difference if the NAND_NO_AUTOINCR option is set, but
otherwise this fixes accesses to the wrong pages.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Acked-by: Scott Wood <scottwood@freescale.com>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/mtd/nand/mxc_nand.c | 6 | 
1 files changed, 3 insertions, 3 deletions
| diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c index 62d696506..29ceab37c 100644 --- a/drivers/mtd/nand/mxc_nand.c +++ b/drivers/mtd/nand/mxc_nand.c @@ -463,7 +463,7 @@ static int mxc_nand_read_page_raw_syndrome(struct mtd_info *mtd,  	int n;  	_mxc_nand_enable_hwecc(mtd, 0); -	chip->cmdfunc(mtd, NAND_CMD_READ0, 0x00, host->page_addr); +	chip->cmdfunc(mtd, NAND_CMD_READ0, 0x00, page);  	for (n = 0, steps = chip->ecc.steps; steps > 0; n++, steps--) {  		host->col_addr = n * eccsize; @@ -507,7 +507,7 @@ static int mxc_nand_read_page_syndrome(struct mtd_info *mtd,  	uint8_t *oob = chip->oob_poi;  	MTDDEBUG(MTD_DEBUG_LEVEL1, "Reading page %u to buf %p oob %p\n", -	      host->page_addr, buf, oob); +	      page, buf, oob);  	/* first read the data area and the available portion of OOB */  	for (n = 0; eccsteps; n++, eccsteps--, p += eccsize) { @@ -545,7 +545,7 @@ static int mxc_nand_read_page_syndrome(struct mtd_info *mtd,  	/* Then switch ECC off and read the OOB area to get the ECC code */  	_mxc_nand_enable_hwecc(mtd, 0); -	chip->cmdfunc(mtd, NAND_CMD_READOOB, mtd->writesize, host->page_addr); +	chip->cmdfunc(mtd, NAND_CMD_READOOB, mtd->writesize, page);  	eccsteps = chip->ecc.steps;  	oob = chip->oob_poi + chip->ecc.prepad;  	for (n = 0; eccsteps; n++, eccsteps--, p += eccsize) { |