ar71xx: allow to pass part_probe types to the m25p80 driver
authorGabor Juhos <juhosg@openwrt.org>
Sat, 3 Dec 2011 18:13:18 +0000 (18:13 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Sat, 3 Dec 2011 18:13:18 +0000 (18:13 +0000)
SVN-Revision: 29411

target/linux/ar71xx/patches-2.6.39/100-mtd-m25p80-allow-to-pass-probe-types-via-platform-data.patch [new file with mode: 0644]
target/linux/ar71xx/patches-2.6.39/102-mtd_m25p80_add_myloader_parser.patch
target/linux/ar71xx/patches-2.6.39/104-mtd_m25p80_add_redboot_parser.patch
target/linux/ar71xx/patches-2.6.39/109-mtd-wrt160nl-trx-parser.patch

diff --git a/target/linux/ar71xx/patches-2.6.39/100-mtd-m25p80-allow-to-pass-probe-types-via-platform-data.patch b/target/linux/ar71xx/patches-2.6.39/100-mtd-m25p80-allow-to-pass-probe-types-via-platform-data.patch
new file mode 100644 (file)
index 0000000..586dcf4
--- /dev/null
@@ -0,0 +1,23 @@
+--- a/drivers/mtd/devices/m25p80.c
++++ b/drivers/mtd/devices/m25p80.c
+@@ -968,6 +968,10 @@ static int __devinit m25p_probe(struct s
+                                       part_probes, &parts, 0);
+               }
++              if (nr_parts <= 0 && data && data->part_probes)
++                      nr_parts = parse_mtd_partitions(&flash->mtd,
++                                      data->part_probes, &parts, 0);
++
+               if (nr_parts <= 0 && data && data->parts) {
+                       parts = data->parts;
+                       nr_parts = data->nr_parts;
+--- a/include/linux/spi/flash.h
++++ b/include/linux/spi/flash.h
+@@ -24,6 +24,7 @@ struct flash_platform_data {
+       unsigned int    nr_parts;
+       char            *type;
++      const char      **part_probes;
+       /* we'll likely add more ... use JEDEC IDs, etc */
+ };
index 149474bcc154f37d814853877f004ca4a119a854..35c5a07a09fbb8da70a6d724ccfaffc6f8e5bc2c 100644 (file)
@@ -1,8 +1,8 @@
 --- a/drivers/mtd/devices/m25p80.c
 +++ b/drivers/mtd/devices/m25p80.c
-@@ -968,6 +968,16 @@ static int __devinit m25p_probe(struct s
-                                       part_probes, &parts, 0);
-               }
+@@ -972,6 +972,16 @@ static int __devinit m25p_probe(struct s
+                       nr_parts = parse_mtd_partitions(&flash->mtd,
+                                       data->part_probes, &parts, 0);
  
 +#ifdef CONFIG_MTD_MYLOADER_PARTS
 +              if (nr_parts <= 0) {
index dee3f6cc7d397f1664191a1721a3e04c492d00d4..da6f1e14ebecd66290d03575a1d4dacb4268647f 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/mtd/devices/m25p80.c
 +++ b/drivers/mtd/devices/m25p80.c
-@@ -978,6 +978,15 @@ static int __devinit m25p_probe(struct s
+@@ -982,6 +982,15 @@ static int __devinit m25p_probe(struct s
                }
  #endif
  
index ea9460ae31c09c7825ff39015d6989cf63d1a8db..838fe446cb8b2a3dd1458a50f4e0fdc07e28d577 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/mtd/devices/m25p80.c
 +++ b/drivers/mtd/devices/m25p80.c
-@@ -987,6 +987,16 @@ static int __devinit m25p_probe(struct s
+@@ -991,6 +991,16 @@ static int __devinit m25p_probe(struct s
                                        part_probes, &parts, 0);
                }
  #endif