Merge remote-tracking branch 'remotes/tegra/android-tegra-2.6.36-honeycomb-mr1' into...
[firefly-linux-kernel-4.4.55.git] / drivers / mtd / nand / nand_base.c
index c18d3b8f51622dbabd8b152ed5acdb2d858eb63b..6823b1f77d27d2ecb64c7f312e42d5ccc3cfb4f8 100644 (file)
@@ -1488,8 +1488,15 @@ static int nand_do_read_ops(struct mtd_info *mtd, loff_t from,
                        else
                                ret = chip->ecc.read_page(mtd, chip, bufpoi,
                                                          page);
+#ifdef CONFIG_MTD_NAND_RK29
+            extern int rk29_nand_refresh(struct mtd_info *mtd, int srcAddr);
+                   if(ret == -1)
+                       ret=rk29_nand_refresh(mtd, page<<chip->page_shift);
+#endif              
                        if (ret < 0)
+                       {
                                break;
+                       }
 
                        /* Transfer not aligned data */
                        if (!aligned) {
@@ -2908,6 +2915,8 @@ static struct nand_flash_dev *nand_get_flash_type(struct mtd_info *mtd,
                        break;
        }
 
+       chip->options |= busw;
+       
        /*
         * Check, if buswidth is correct. Hardware drivers should set
         * chip correct !