From mboxrd@z Thu Jan 1 00:00:00 1970 From: Scott Wood Date: Mon, 18 Feb 2013 18:30:23 -0600 Subject: [U-Boot] [PATCH v7 06/19] nand: mxc: Use appropriate page number in syndrome functions In-Reply-To: <1360961665-10693-6-git-send-email-benoit.thebaudeau@advansee.com> (from benoit.thebaudeau@advansee.com on Fri Feb 15 14:54:12 2013) References: <1360961665-10693-1-git-send-email-benoit.thebaudeau@advansee.com> <1360961665-10693-6-git-send-email-benoit.thebaudeau@advansee.com> Message-ID: <1361233823.25178.4@snotra> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 02/15/2013 02:54:12 PM, Beno?t Th?baudeau wrote: > 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 > --- > Changes in v7: None > Changes in v6: None > Changes in v5: None > Changes in v4: > - New patch. > > Changes in v3: None > Changes in v2: None > > drivers/mtd/nand/mxc_nand.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c > index 249328e..001c2c0 100644 > --- a/drivers/mtd/nand/mxc_nand.c > +++ b/drivers/mtd/nand/mxc_nand.c > @@ -504,7 +504,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; > @@ -548,7 +548,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) { > @@ -586,7 +586,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) { The debug print in mxc_nand_read_oob_syndrome() also needs to be fixed. -Scott