Skip to contentSkip to conversation

mtd: gen_probe: use AMD standard command-set with Winbond flash chips

PATCH In review Guillaume LECERF 3 participants 3 messages May 17, 2010 Memory technology devices (MTD)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 mtd: gen_probe: use AMD standard command-set with Winbond flash chips

Tested with W19L320SBT9C [1].

[1] http://www.datasheetarchive.com/pdf-datasheets/Datasheets-40/DSA-795343.pdf

---
 drivers/mtd/chips/gen_probe.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
drivers/mtd/chips/gen_probe.c +1 -0
index 75a8f9d..3b9a284 100644
@@ -249,6 +249,7 @@ static struct mtd_info *check_cmd_set(struct map_info *map, int primary)
 #ifdef CONFIG_MTD_CFI_AMDSTD
 	case P_ID_AMD_STD:
 	case P_ID_SST_OLD:
+	case P_ID_WINBOND:
 		return cfi_cmdset_0002(map, primary);
 #endif
 #ifdef CONFIG_MTD_CFI_STAA
Acked-by on v1 1/1
#1 lore raw

Hi Guillaume,

Quoted 6 lines · On Monday 17 May 2010 11:39:42 Guillaume LECERF wrote:

Tested with W19L320SBT9C [1].

[1]
http://www.datasheetarchive.com/pdf-datasheets/Datasheets-40/DSA-795343.pd
f

That's correct, thanks!

Quoted 2 lines
Quoted 22 lines
---
 drivers/mtd/chips/gen_probe.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
drivers/mtd/chips/gen_probe.c +1 -0
index 75a8f9d..3b9a284 100644
@@ -249,6 +249,7 @@ static struct mtd_info *check_cmd_set(struct map_info
 *map, int primary) #ifdef CONFIG_MTD_CFI_AMDSTD
 	case P_ID_AMD_STD:
 	case P_ID_SST_OLD:
+	case P_ID_WINBOND:
 		return cfi_cmdset_0002(map, primary);
 #endif
 #ifdef CONFIG_MTD_CFI_STAA

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

#2 lore raw
In reply to Guillaume LECERF
Quoted 15 lines · Guillaume LECERF

Tested with W19L320SBT9C [1].

[1] http://www.datasheetarchive.com/pdf-datasheets/Datasheets-40/DSA-795343.pdf

---
 drivers/mtd/chips/gen_probe.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
drivers/mtd/chips/gen_probe.c +0 -0
index 75a8f9d..3b9a284 100644

drivers/mtd/chips/gen_probe.c static struct mtd_info *check_cmd_set(struct map_info *map, int primary) · line 255

Quoted 7 lines
drivers/mtd/chips/gen_probe.c +1 -0
@@ -249,6 +249,7 @@ static struct mtd_info *check_cmd_set(struct map_info *map, int primary)
 #ifdef CONFIG_MTD_CFI_AMDSTD
 	case P_ID_AMD_STD:
 	case P_ID_SST_OLD:
+	case P_ID_WINBOND:
 		return cfi_cmdset_0002(map, primary);
 #endif
 #ifdef CONFIG_MTD_CFI_STAA

Looks like this won't automatically load the cfi_cmdset_0002 module on demand, from cfi_cmdset_unknown(). See how the cfi_cmdset_0001 module does it with aliases for 0003 and 0200.

Your recent addition of P_ID_SST_OLD suffers the same problem. You want something like this... please test (with CONFIG_MTD_CFI_AMDSTD=m):

drivers/mtd/chips/cfi_cmdset_0002.c +6 -0
index 87e86e9..d81079e 100644
@@ -489,7 +489,11 @@ struct mtd_info *cfi_cmdset_0002(struct map_info *map, int primary)
 
 	return cfi_amdstd_setup(mtd);
 }
+struct mtd_info *cfi_cmdset_0006(struct map_info *map, int primary) __attribute__((alias("cfi_cmdset_0002")));
+struct mtd_info *cfi_cmdset_0701(struct map_info *map, int primary) __attribute__((alias("cfi_cmdset_0002")));
 EXPORT_SYMBOL_GPL(cfi_cmdset_0002);
+EXPORT_SYMBOL_GPL(cfi_cmdset_0006);
+EXPORT_SYMBOL_GPL(cfi_cmdset_0701);
 
 static struct mtd_info *cfi_amdstd_setup(struct mtd_info *mtd)
 {
@@ -2040,3 +2044,5 @@ static void cfi_amdstd_destroy(struct mtd_info *mtd)
 MODULE_LICENSE("GPL");
 MODULE_AUTHOR("Crossnet Co. <[email protected]> et al.");
 MODULE_DESCRIPTION("MTD chip driver for AMD/Fujitsu flash chips");
+MODULE_ALIAS("cfi_cmdset_0006");
+MODULE_ALIAS("cfi_cmdset_0701");
Signature · 2 lines
David Woodhouse                            Open Source Technology Centre
[email protected]                              Intel Corporation