add a chip_fixup function to the plat_nand driver on 2.6.23 as well (closes #3513)
authorGabor Juhos <juhosg@openwrt.org>
Sat, 7 Jun 2008 08:35:09 +0000 (08:35 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Sat, 7 Jun 2008 08:35:09 +0000 (08:35 +0000)
SVN-Revision: 11386

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

diff --git a/target/linux/generic-2.6/patches-2.6.23/080-mtd_plat_nand_chip_fixup.patch b/target/linux/generic-2.6/patches-2.6.23/080-mtd_plat_nand_chip_fixup.patch
new file mode 100644 (file)
index 0000000..4653898
--- /dev/null
@@ -0,0 +1,32 @@
+--- a/include/linux/mtd/nand.h
++++ b/include/linux/mtd/nand.h
+@@ -572,6 +572,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
+@@ -70,7 +70,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;
+       }