+++ /dev/null
---- a/drivers/mtd/devices/m25p80.c
-+++ b/drivers/mtd/devices/m25p80.c
-@@ -626,6 +626,10 @@ static struct flash_info __devinitdata m
- { "mx25l12805d", 0xc22018, 0, 64 * 1024, 256, },
- { "mx25l12855e", 0xc22618, 0, 64 * 1024, 256, },
-
-+ /* PMC -- pm25x "blocks" are 32K, sectors are 4K */
-+ { "pm25lv512", 0, 32 * 1024, 2, SECT_4K },
-+ { "pm25lv010", 0, 32 * 1024, 4, SECT_4K },
-+
- /* Spansion -- single (large) sector size only, at least
- * for the chips listed here (without boot sectors).
- */
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
-@@ -856,6 +856,16 @@ static int __devinit m25p_probe(struct s
+@@ -867,6 +867,16 @@ static int __devinit m25p_probe(struct s
part_probes, &parts, 0);
}
+++ /dev/null
---- a/drivers/mtd/devices/m25p80.c
-+++ b/drivers/mtd/devices/m25p80.c
-@@ -626,6 +626,10 @@ static struct flash_info __devinitdata m
- { "mx25l12805d", 0xc22018, 0, 64 * 1024, 256, },
- { "mx25l12855e", 0xc22618, 0, 64 * 1024, 256, },
-
-+ /* EON -- en25pxx */
-+ { "en25p32", 0x1c2016, 0, 64 * 1024, 64, },
-+ { "en25p64", 0x1c2017, 0, 64 * 1024, 128, },
-+
- /* PMC -- pm25x "blocks" are 32K, sectors are 4K */
- { "pm25lv512", 0, 32 * 1024, 2, SECT_4K },
- { "pm25lv010", 0, 32 * 1024, 4, SECT_4K },
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
-@@ -870,6 +870,15 @@ static int __devinit m25p_probe(struct s
+@@ -877,6 +877,15 @@ static int __devinit m25p_probe(struct s
}
#endif
+++ /dev/null
---- a/drivers/mtd/devices/m25p80.c
-+++ b/drivers/mtd/devices/m25p80.c
-@@ -630,6 +630,11 @@ static struct flash_info __devinitdata m
- { "en25p32", 0x1c2016, 0, 64 * 1024, 64, },
- { "en25p64", 0x1c2017, 0, 64 * 1024, 128, },
-
-+ /* Numonyx -- xxxs33b */
-+ { "160s33b", 0x898911, 0, 64 * 1024, 64, },
-+ { "320s33b", 0x898912, 0, 64 * 1024, 128, },
-+ { "640s33b", 0x898913, 0, 64 * 1024, 256, },
-+
- /* PMC -- pm25x "blocks" are 32K, sectors are 4K */
- { "pm25lv512", 0, 32 * 1024, 2, SECT_4K },
- { "pm25lv010", 0, 32 * 1024, 4, SECT_4K },
-@@ -784,11 +789,12 @@ static int __devinit m25p_probe(struct s
- dev_set_drvdata(&spi->dev, flash);
-
- /*
-- * Atmel serial flash tend to power up
-+ * Atmel and Intel/Numonyx serial flash tend to power up
- * with the software protection bits set
- */
-
-- if (info->jedec_id >> 16 == 0x1f) {
-+ if (info->jedec_id >> 16 == 0x1f ||
-+ info->jedec_id >> 16 == 0x89) {
- write_enable(flash);
- write_sr(flash, 0);
- }
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
-@@ -885,6 +885,16 @@ static int __devinit m25p_probe(struct s
+@@ -886,6 +886,16 @@ static int __devinit m25p_probe(struct s
part_probes, &parts, 0);
}
#endif
+++ /dev/null
---- a/drivers/mtd/devices/m25p80.c
-+++ b/drivers/mtd/devices/m25p80.c
-@@ -687,6 +687,7 @@ static struct flash_info __devinitdata m
- { "w25x80", 0xef3014, 0, 64 * 1024, 16, SECT_4K, },
- { "w25x16", 0xef3015, 0, 64 * 1024, 32, SECT_4K, },
- { "w25x32", 0xef3016, 0, 64 * 1024, 64, SECT_4K, },
-+ { "w25q32", 0xef4016, 0, 64 * 1024, 64, SECT_4K, },
- { "w25x64", 0xef3017, 0, 64 * 1024, 128, SECT_4K, },
- };
-
--- /dev/null
+--- a/drivers/mtd/nand/nand_ecc.c
++++ b/drivers/mtd/nand/nand_ecc.c
+@@ -492,8 +492,7 @@ int __nand_correct_data(unsigned char *b
+ if ((bitsperbyte[b0] + bitsperbyte[b1] + bitsperbyte[b2]) == 1)
+ return 1; /* error in ecc data; no action needed */
+
+- printk(KERN_ERR "uncorrectable error : ");
+- return -1;
++ return -EBADMSG;
+ }
+ EXPORT_SYMBOL(__nand_correct_data);
+
--- /dev/null
+--- a/drivers/mtd/devices/m25p80.c
++++ b/drivers/mtd/devices/m25p80.c
+@@ -626,6 +626,10 @@ static struct flash_info __devinitdata m
+ { "mx25l12805d", 0xc22018, 0, 64 * 1024, 256, },
+ { "mx25l12855e", 0xc22618, 0, 64 * 1024, 256, },
+
++ /* PMC -- pm25x "blocks" are 32K, sectors are 4K */
++ { "pm25lv512", 0, 32 * 1024, 2, SECT_4K },
++ { "pm25lv010", 0, 32 * 1024, 4, SECT_4K },
++
+ /* Spansion -- single (large) sector size only, at least
+ * for the chips listed here (without boot sectors).
+ */
--- /dev/null
+--- a/drivers/mtd/devices/m25p80.c
++++ b/drivers/mtd/devices/m25p80.c
+@@ -626,6 +626,10 @@ static struct flash_info __devinitdata m
+ { "mx25l12805d", 0xc22018, 0, 64 * 1024, 256, },
+ { "mx25l12855e", 0xc22618, 0, 64 * 1024, 256, },
+
++ /* EON -- en25pxx */
++ { "en25p32", 0x1c2016, 0, 64 * 1024, 64, },
++ { "en25p64", 0x1c2017, 0, 64 * 1024, 128, },
++
+ /* PMC -- pm25x "blocks" are 32K, sectors are 4K */
+ { "pm25lv512", 0, 32 * 1024, 2, SECT_4K },
+ { "pm25lv010", 0, 32 * 1024, 4, SECT_4K },
--- /dev/null
+--- a/drivers/mtd/devices/m25p80.c
++++ b/drivers/mtd/devices/m25p80.c
+@@ -630,6 +630,11 @@ static struct flash_info __devinitdata m
+ { "en25p32", 0x1c2016, 0, 64 * 1024, 64, },
+ { "en25p64", 0x1c2017, 0, 64 * 1024, 128, },
+
++ /* Numonyx -- xxxs33b */
++ { "160s33b", 0x898911, 0, 64 * 1024, 64, },
++ { "320s33b", 0x898912, 0, 64 * 1024, 128, },
++ { "640s33b", 0x898913, 0, 64 * 1024, 256, },
++
+ /* PMC -- pm25x "blocks" are 32K, sectors are 4K */
+ { "pm25lv512", 0, 32 * 1024, 2, SECT_4K },
+ { "pm25lv010", 0, 32 * 1024, 4, SECT_4K },
+@@ -784,11 +789,12 @@ static int __devinit m25p_probe(struct s
+ dev_set_drvdata(&spi->dev, flash);
+
+ /*
+- * Atmel serial flash tend to power up
++ * Atmel and Intel/Numonyx serial flash tend to power up
+ * with the software protection bits set
+ */
+
+- if (info->jedec_id >> 16 == 0x1f) {
++ if (info->jedec_id >> 16 == 0x1f ||
++ info->jedec_id >> 16 == 0x89) {
+ write_enable(flash);
+ write_sr(flash, 0);
+ }
--- /dev/null
+--- a/drivers/mtd/devices/m25p80.c
++++ b/drivers/mtd/devices/m25p80.c
+@@ -687,6 +687,7 @@ static struct flash_info __devinitdata m
+ { "w25x80", 0xef3014, 0, 64 * 1024, 16, SECT_4K, },
+ { "w25x16", 0xef3015, 0, 64 * 1024, 32, SECT_4K, },
+ { "w25x32", 0xef3016, 0, 64 * 1024, 64, SECT_4K, },
++ { "w25q32", 0xef4016, 0, 64 * 1024, 64, SECT_4K, },
+ { "w25x64", 0xef3017, 0, 64 * 1024, 128, SECT_4K, },
+ };
+
+++ /dev/null
---- a/drivers/mtd/nand/nand_ecc.c
-+++ b/drivers/mtd/nand/nand_ecc.c
-@@ -492,8 +492,7 @@ int __nand_correct_data(unsigned char *b
- if ((bitsperbyte[b0] + bitsperbyte[b1] + bitsperbyte[b2]) == 1)
- return 1; /* error in ecc data; no action needed */
-
-- printk(KERN_ERR "uncorrectable error : ");
-- return -1;
-+ return -EBADMSG;
- }
- EXPORT_SYMBOL(__nand_correct_data);
-