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