MTD: OneNAND OMAP2/3: Fix incorrect bufferram offset

Message ID
State New, archived
Headers show

Commit Message

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.



From 4ad479f5238560286999c07c30fec3a6a5551dd5 Mon Sep 17 00:00:00 2001
From: Mika Korhonen <>
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 <>
 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 (area == ONENAND_DATARAM)
-			return mtd->writesize;
+			return this->writesize;
 		if (area == ONENAND_SPARERAM)
 			return mtd->oobsize;