Patchwork MTD: OneNAND OMAP2/3: Fix incorrect bufferram offset

login
register
mail settings
Submitter Mika Korhonen
Date June 11, 2009, 11:15 a.m.
Message ID <7948530906110415u3cc3cd62je650881b6385c8f5@mail.gmail.com>
Download mbox | patch
Permalink /patch/28562/
State New
Headers show

Comments

Mika Korhonen - June 11, 2009, 11:15 a.m.
Hi, I was testing 2-plane programming and noticed that when writing
and doing a verify read straight after I kept getting 00 00 00 00 ...
instead of the written data. I found out that OMAP2/3 version of
onenand_bufferram_offset() uses the faked page size instead of the
real one. The generic version in onenand_base.c is ok.

The patch to fix this is attached.

br
Mika

Patch

From 4ad479f5238560286999c07c30fec3a6a5551dd5 Mon Sep 17 00:00:00 2001
From: Mika Korhonen <mika.j.korhonen@gmail.com>
Date: Thu, 11 Jun 2009 14:05:07 +0300
Subject: [PATCH] MTD: OneNAND OMAP2/3: Fix incorrect bufferram offset

Fixes the case where CONFIG_MTD_ONENAND_2X_PROGRAM is set and
the real page size differs from mtd_info.writesize.

Signed-off-by: Mika Korhonen <mika.j.korhonen@gmail.com>
---
 drivers/mtd/onenand/omap2.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/mtd/onenand/omap2.c b/drivers/mtd/onenand/omap2.c
index df26db8..32de634 100644
--- a/drivers/mtd/onenand/omap2.c
+++ b/drivers/mtd/onenand/omap2.c
@@ -267,7 +267,7 @@  static inline int omap2_onenand_bufferram_offset(struct mtd_info *mtd, int area)
 
 	if (ONENAND_CURRENT_BUFFERRAM(this)) {
 		if (area == ONENAND_DATARAM)
-			return mtd->writesize;
+			return this->writesize;
 		if (area == ONENAND_SPARERAM)
 			return mtd->oobsize;
 	}
-- 
1.5.6.5