[kernel] add chip_fixup patch of the platform_nand driver to 2.6.26 as well
authorGabor Juhos <juhosg@openwrt.org>
Fri, 25 Jul 2008 19:37:29 +0000 (19:37 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Fri, 25 Jul 2008 19:37:29 +0000 (19:37 +0000)
SVN-Revision: 11922

target/linux/generic-2.6/patches-2.6.26/080-mtd_plat_nand_chip_fixup.patch [new file with mode: 0644]

diff --git a/target/linux/generic-2.6/patches-2.6.26/080-mtd_plat_nand_chip_fixup.patch b/target/linux/generic-2.6/patches-2.6.26/080-mtd_plat_nand_chip_fixup.patch
new file mode 100644 (file)
index 0000000..a263093
--- /dev/null
@@ -0,0 +1,32 @@
+--- a/include/linux/mtd/nand.h
++++ b/include/linux/mtd/nand.h
+@@ -573,6 +573,7 @@
+       int                     chip_delay;
+       unsigned int            options;
+       const char              **part_probe_types;
++      int                     (*chip_fixup)(struct mtd_info *mtd);
+       void                    *priv;
+ };
+--- a/drivers/mtd/nand/plat_nand.c
++++ b/drivers/mtd/nand/plat_nand.c
+@@ -71,7 +71,18 @@
+       platform_set_drvdata(pdev, data);
+       /* Scan to find existance of the device */
+-      if (nand_scan(&data->mtd, 1)) {
++      if (nand_scan_ident(&data->mtd, 1)) {
++              res = -ENXIO;
++              goto out;
++      }
++
++      if (pdata->chip.chip_fixup) {
++              res = pdata->chip.chip_fixup(&data->mtd);
++              if (res)
++                      goto out;
++      }
++
++      if (nand_scan_tail(&data->mtd)) {
+               res = -ENXIO;
+               goto out;
+       }