OneNAND: Handle erase correctly in Double Density Package (DDP)

Linux-MTD Mailing List linux-mtd at lists.infradead.org
Fri May 12 11:59:03 EDT 2006


commit 3cecf69ecde22199699c4f0e609dfed2a487b674
tree dda3a1cdd96b211a747cd0967a1c231daf2d0a47
parent 34c1060959b61a5bb2e97a88411446028cebfa7c
author Kyungmin Park <kyungmin.park at samsung.com> Fri, 12 May 2006 17:02:51 +0300
committer Jarkko Lavinen <lavinen at pentafluge.infradead.org> Fri, 12 May 2006 15:35:48 +0100

OneNAND: Handle erase correctly in Double Density Package (DDP)

There's erase bug in DDP.
We need to add DDP select in erase

Signed-off-by: Kyungmin Park <kyungmin.park at samsung.com>

 drivers/mtd/onenand/onenand_base.c |    6 ++++++
 1 files changed, 6 insertions(+)

diff --git a/drivers/mtd/onenand/onenand_base.c b/drivers/mtd/onenand/onenand_base.c
index 6b950ab..7c7dc0a 100644
--- a/drivers/mtd/onenand/onenand_base.c
+++ b/drivers/mtd/onenand/onenand_base.c
@@ -234,6 +234,12 @@ static int onenand_command(struct mtd_in
 		/* Write 'DFS, FBA' of Flash */
 		value = onenand_block_address(this, block);
 		this->write_word(value, this->base + ONENAND_REG_START_ADDRESS1);
+
+		if (cmd == ONENAND_CMD_ERASE) {
+			/* Select DataRAM for DDP */
+			value = onenand_bufferram_address(this, block);
+			this->write_word(value, this->base + ONENAND_REG_START_ADDRESS2);
+		}
 	}
 
 	if (page != -1) {




More information about the linux-mtd-cvs mailing list