All of lore.kernel.org
 help / color / mirror / Atom feed
From: Guillaume LECERF <glecerf@gmail.com>
To: linux-mtd@lists.infradead.org
Cc: fggs@terra.com.br, zhangyd6@gmail.com, w.sang@pengutronix.de,
	David.Woodhouse@intel.com
Subject: [PATCH 2/4] mtd: cfi_cmdset_0002: make sector erase command variable
Date: Fri, 22 Oct 2010 17:40:20 +0200	[thread overview]
Message-ID: <20101022154020.11097.4024.stgit@dev.siriade.com> (raw)
In-Reply-To: <20101022154015.11097.94660.stgit@dev.siriade.com>

Some old SST chips use 0x50 as sector erase command, instead
of 0x30. Make this value variable to handle such chips.

Signed-off-by: Guillaume LECERF <glecerf@gmail.com>
---
 drivers/mtd/chips/cfi_cmdset_0002.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c
index 3e6c47b..209928b 100644
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
@@ -78,6 +78,7 @@ static struct mtd_chip_driver cfi_amdstd_chipdrv = {
 	.module		= THIS_MODULE
 };
 
+static map_word sector_erase_cmd = CMD(0x30);
 
 /* #define DEBUG_CFI_FEATURES */
 
@@ -674,7 +675,7 @@ static int get_chip(struct map_info *map, struct flchip *chip, unsigned long adr
 				 * there was an error (so leave the erase
 				 * routine to recover from it) or we trying to
 				 * use the erase-in-progress sector. */
-				map_write(map, CMD(0x30), chip->in_progress_block_addr);
+				map_write(map, sector_erase_cmd, chip->in_progress_block_addr);
 				chip->state = FL_ERASING;
 				chip->oldstate = FL_READY;
 				printk(KERN_ERR "MTD %s(): chip not ready after erase suspend\n", __func__);
@@ -727,7 +728,7 @@ static void put_chip(struct map_info *map, struct flchip *chip, unsigned long ad
 	switch(chip->oldstate) {
 	case FL_ERASING:
 		chip->state = chip->oldstate;
-		map_write(map, CMD(0x30), chip->in_progress_block_addr);
+		map_write(map, sector_erase_cmd, chip->in_progress_block_addr);
 		chip->oldstate = FL_READY;
 		chip->state = FL_ERASING;
 		break;
@@ -870,7 +871,7 @@ static void __xipram xip_udelay(struct map_info *map, struct flchip *chip,
 			local_irq_disable();
 
 			/* Resume the write or erase operation */
-			map_write(map, CMD(0x30), adr);
+			map_write(map, sector_erase_cmd, adr);
 			chip->state = oldstate;
 			start = xip_currtime();
 		} else if (usec >= 1000000/HZ) {
@@ -1675,7 +1676,7 @@ static int __xipram do_erase_oneblock(struct map_info *map, struct flchip *chip,
 	cfi_send_gen_cmd(0x80, cfi->addr_unlock1, chip->start, map, cfi, cfi->device_type, NULL);
 	cfi_send_gen_cmd(0xAA, cfi->addr_unlock1, chip->start, map, cfi, cfi->device_type, NULL);
 	cfi_send_gen_cmd(0x55, cfi->addr_unlock2, chip->start, map, cfi, cfi->device_type, NULL);
-	map_write(map, CMD(0x30), adr);
+	map_write(map, sector_erase_cmd, adr);
 
 	chip->state = FL_ERASING;
 	chip->erase_suspended = 0;

  reply	other threads:[~2010-10-22 15:41 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-22 15:40 [PATCH 1/4] mtd: cfi_util: add support for switching SST 39VF640xB chips into QRY mode Guillaume LECERF
2010-10-22 15:40 ` Guillaume LECERF [this message]
2010-10-23 10:24   ` [PATCH 2/4] mtd: cfi_cmdset_0002: make sector erase command variable Wolfram Sang
2010-10-25  8:11     ` Guillaume LECERF
2010-10-26  8:34     ` Guillaume LECERF
2010-10-22 15:40 ` [PATCH 3/4] mtd: cfi_cmdset_0002: use 0x50 erase command for SST 39VFxxxxB chips Guillaume LECERF
2010-10-22 15:40 ` [PATCH 4/4] mtd: cfi_cmdset_0002: add CFI detection for SST 38VF640x chips Guillaume LECERF
2010-10-25  1:18   ` yidong zhang
2010-10-25  8:09     ` Guillaume LECERF
2010-10-25  8:38       ` yidong zhang
2010-10-25  9:17         ` Guillaume LECERF
2010-10-25 10:01           ` yidong zhang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20101022154020.11097.4024.stgit@dev.siriade.com \
    --to=glecerf@gmail.com \
    --cc=David.Woodhouse@intel.com \
    --cc=fggs@terra.com.br \
    --cc=linux-mtd@lists.infradead.org \
    --cc=w.sang@pengutronix.de \
    --cc=zhangyd6@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.