Patchwork Fixup for Numonyx M29W128 chips

login
register
mail settings
Submitter Darius Augulis
Date March 25, 2009, 9:23 a.m.
Message ID <gqctb6$ie0$1@ger.gmane.org>
Download mbox | patch
Permalink /patch/25074/
State Accepted
Commit 504a3e72208fc6a65924426ff5693982590bccdc
Headers show

Comments

Darius Augulis - March 25, 2009, 9:23 a.m.
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>

Patch

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