All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH] Fixup for Numonyx M29W128 chips
@ 2009-03-26 11:02 massimo cirillo
  2009-03-26 12:54 ` Darius Augulis
  0 siblings, 1 reply; 7+ messages in thread
From: massimo cirillo @ 2009-03-26 11:02 UTC (permalink / raw)
  To: linux-mtd, augulis.darius

Hi Darius,
what kind of failure did you experiment with M29W?

In my opinion, complete removal of the buffer program feature is not a
good solution,
because you are taking away an important feature of the device, that results in
a very high performance decrease.

Moreover, if you make the fix applicable to all devices with 0x227E device ID,
you are removing the same feature from other devices too, such as M29EW
that has a much bigger buffer thus resulting in a dramatic performance decrease
for this device.

^ permalink raw reply	[flat|nested] 7+ messages in thread
* [PATCH] Fixup for Numonyx M29W128 chips
@ 2009-03-25  9:23 Darius Augulis
  0 siblings, 0 replies; 7+ messages in thread
From: Darius Augulis @ 2009-03-25  9:23 UTC (permalink / raw)
  To: linux-mtd

[-- Attachment #1: Type: text/plain, Size: 0 bytes --]



[-- Attachment #2: patch-mtd-fixup-M29W128G --]
[-- Type: text/plain, Size: 1347 bytes --]

From: Darius Augulis <augulis.darius@gmail.com>

Prevent NUMONYX M29W128G memories from using write buffer,
because it doesn't work properly.

Signed-off-by: Darius Augulis <augulis.darius@gmail.com>

Index: linux-2.6.29/drivers/mtd/chips/cfi_cmdset_0002.c
===================================================================
--- linux-2.6.29.orig/drivers/mtd/chips/cfi_cmdset_0002.c
+++ linux-2.6.29/drivers/mtd/chips/cfi_cmdset_0002.c
@@ -282,6 +282,16 @@ static void fixup_s29gl032n_sectors(stru
 	}
 }
 
+static void fixup_M29W128G_write_buffer(struct mtd_info *mtd, void *param)
+{
+	struct map_info *map = mtd->priv;
+	struct cfi_private *cfi = map->fldrv_priv;
+	if (cfi->cfiq->BufWriteTimeoutTyp) {
+		pr_warning("Don't use write buffer on ST flash M29W128G\n");
+		cfi->cfiq->BufWriteTimeoutTyp = 0;
+	}
+}
+
 static struct cfi_fixup cfi_fixup_table[] = {
 	{ CFI_MFR_ATMEL, CFI_ID_ANY, fixup_convert_atmel_pri, NULL },
 #ifdef AMD_BOOTLOC_BUG
@@ -298,6 +308,7 @@ static struct cfi_fixup cfi_fixup_table[
 	{ CFI_MFR_AMD, 0x1301, fixup_s29gl064n_sectors, NULL, },
 	{ CFI_MFR_AMD, 0x1a00, fixup_s29gl032n_sectors, NULL, },
 	{ CFI_MFR_AMD, 0x1a01, fixup_s29gl032n_sectors, NULL, },
+	{ CFI_MFR_ST,  0x227E, fixup_M29W128G_write_buffer, NULL, },
 #if !FORCE_WORD_WRITE
 	{ CFI_MFR_ANY, CFI_ID_ANY, fixup_use_write_buffers, NULL, },
 #endif

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2009-04-14 18:02 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-26 11:02 [PATCH] Fixup for Numonyx M29W128 chips massimo cirillo
2009-03-26 12:54 ` Darius Augulis
2009-03-30 12:56   ` massimo cirillo
2009-04-01  7:35     ` Darius Augulis
2009-04-13 18:52       ` Richard Retanubun
2009-04-14 18:02         ` Darius Augulis
  -- strict thread matches above, loose matches on Subject: below --
2009-03-25  9:23 Darius Augulis

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.