From: Gabor Juhos Date: Mon, 8 Feb 2010 09:37:16 +0000 (+0000) Subject: kernel: 2.6.32: integrate m25p80 driver related patches from ar71xx X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=d2cd6f3b9999359533ecd8f5b3af8ceb5d0c8d4c;p=openwrt%2Fstaging%2Fjow.git kernel: 2.6.32: integrate m25p80 driver related patches from ar71xx SVN-Revision: 19547 --- diff --git a/target/linux/ar71xx/patches-2.6.32/100-mtd_m25p80_add_pm25lv_flash_support.patch b/target/linux/ar71xx/patches-2.6.32/100-mtd_m25p80_add_pm25lv_flash_support.patch deleted file mode 100644 index 30c5cc9529..0000000000 --- a/target/linux/ar71xx/patches-2.6.32/100-mtd_m25p80_add_pm25lv_flash_support.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- 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). - */ diff --git a/target/linux/ar71xx/patches-2.6.32/102-mtd_m25p80_add_myloader_parser.patch b/target/linux/ar71xx/patches-2.6.32/102-mtd_m25p80_add_myloader_parser.patch index 7b28fe4182..320c76a0cc 100644 --- a/target/linux/ar71xx/patches-2.6.32/102-mtd_m25p80_add_myloader_parser.patch +++ b/target/linux/ar71xx/patches-2.6.32/102-mtd_m25p80_add_myloader_parser.patch @@ -1,6 +1,6 @@ --- 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); } diff --git a/target/linux/ar71xx/patches-2.6.32/103-mtd_m25p80_add_en25pxx_support.patch b/target/linux/ar71xx/patches-2.6.32/103-mtd_m25p80_add_en25pxx_support.patch deleted file mode 100644 index d3bd1dd5ef..0000000000 --- a/target/linux/ar71xx/patches-2.6.32/103-mtd_m25p80_add_en25pxx_support.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- 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 }, diff --git a/target/linux/ar71xx/patches-2.6.32/104-mtd_m25p80_add_redboot_parser.patch b/target/linux/ar71xx/patches-2.6.32/104-mtd_m25p80_add_redboot_parser.patch index d4a8ce9a4a..dbcdde088f 100644 --- a/target/linux/ar71xx/patches-2.6.32/104-mtd_m25p80_add_redboot_parser.patch +++ b/target/linux/ar71xx/patches-2.6.32/104-mtd_m25p80_add_redboot_parser.patch @@ -1,6 +1,6 @@ --- 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 diff --git a/target/linux/ar71xx/patches-2.6.32/106-mtd_m25p80_add_xxxs33b_support.patch b/target/linux/ar71xx/patches-2.6.32/106-mtd_m25p80_add_xxxs33b_support.patch deleted file mode 100644 index 0c7c227ed8..0000000000 --- a/target/linux/ar71xx/patches-2.6.32/106-mtd_m25p80_add_xxxs33b_support.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- 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); - } diff --git a/target/linux/ar71xx/patches-2.6.32/109-mtd-wrt160nl-trx-parser.patch b/target/linux/ar71xx/patches-2.6.32/109-mtd-wrt160nl-trx-parser.patch index 52f54e6ce8..7af88432a0 100644 --- a/target/linux/ar71xx/patches-2.6.32/109-mtd-wrt160nl-trx-parser.patch +++ b/target/linux/ar71xx/patches-2.6.32/109-mtd-wrt160nl-trx-parser.patch @@ -1,6 +1,6 @@ --- 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 diff --git a/target/linux/ar71xx/patches-2.6.32/112-mtd-m25p80-add-w25q32-chip-support.patch b/target/linux/ar71xx/patches-2.6.32/112-mtd-m25p80-add-w25q32-chip-support.patch deleted file mode 100644 index 5f44c1d696..0000000000 --- a/target/linux/ar71xx/patches-2.6.32/112-mtd-m25p80-add-w25q32-chip-support.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- 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, }, - }; - diff --git a/target/linux/generic-2.6/patches-2.6.32/083-mtd_fix_nand_correct_data_return_code.patch b/target/linux/generic-2.6/patches-2.6.32/083-mtd_fix_nand_correct_data_return_code.patch new file mode 100644 index 0000000000..97148d07d0 --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.32/083-mtd_fix_nand_correct_data_return_code.patch @@ -0,0 +1,12 @@ +--- 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); + diff --git a/target/linux/generic-2.6/patches-2.6.32/084-mtd_m25p80_add_pm25lv_flash_support.patch b/target/linux/generic-2.6/patches-2.6.32/084-mtd_m25p80_add_pm25lv_flash_support.patch new file mode 100644 index 0000000000..30c5cc9529 --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.32/084-mtd_m25p80_add_pm25lv_flash_support.patch @@ -0,0 +1,13 @@ +--- 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). + */ diff --git a/target/linux/generic-2.6/patches-2.6.32/085-mtd_m25p80_add_en25pxx_support.patch b/target/linux/generic-2.6/patches-2.6.32/085-mtd_m25p80_add_en25pxx_support.patch new file mode 100644 index 0000000000..d3bd1dd5ef --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.32/085-mtd_m25p80_add_en25pxx_support.patch @@ -0,0 +1,13 @@ +--- 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 }, diff --git a/target/linux/generic-2.6/patches-2.6.32/086-mtd_m25p80_add_xxxs33b_support.patch b/target/linux/generic-2.6/patches-2.6.32/086-mtd_m25p80_add_xxxs33b_support.patch new file mode 100644 index 0000000000..0c7c227ed8 --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.32/086-mtd_m25p80_add_xxxs33b_support.patch @@ -0,0 +1,29 @@ +--- 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); + } diff --git a/target/linux/generic-2.6/patches-2.6.32/087-mtd-m25p80-add-w25q32-chip-support.patch b/target/linux/generic-2.6/patches-2.6.32/087-mtd-m25p80-add-w25q32-chip-support.patch new file mode 100644 index 0000000000..5f44c1d696 --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.32/087-mtd-m25p80-add-w25q32-chip-support.patch @@ -0,0 +1,10 @@ +--- 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, }, + }; + diff --git a/target/linux/generic-2.6/patches-2.6.32/090-mtd_fix_nand_correct_data_return_code.patch b/target/linux/generic-2.6/patches-2.6.32/090-mtd_fix_nand_correct_data_return_code.patch deleted file mode 100644 index 97148d07d0..0000000000 --- a/target/linux/generic-2.6/patches-2.6.32/090-mtd_fix_nand_correct_data_return_code.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- 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); -