]> err.no Git - linux-2.6/blobdiff - drivers/mtd/nand/nand_base.c
Merge git://git.infradead.org/mtd-2.6
[linux-2.6] / drivers / mtd / nand / nand_base.c
index ddd4fc019042ff72250c887944a3410ec6b69459..7acb1a0e7409fbf950a06e97f8e58b3a1be38559 100644 (file)
@@ -2469,8 +2469,12 @@ int nand_scan_tail(struct mtd_info *mtd)
                        chip->ecc.write_oob = nand_write_oob_std;
 
        case NAND_ECC_HW_SYNDROME:
-               if (!chip->ecc.calculate || !chip->ecc.correct ||
-                   !chip->ecc.hwctl) {
+               if ((!chip->ecc.calculate || !chip->ecc.correct ||
+                    !chip->ecc.hwctl) &&
+                   (!chip->ecc.read_page ||
+                    chip->ecc.read_page == nand_read_page_hwecc ||
+                    !chip->ecc.write_page ||
+                    chip->ecc.write_page == nand_write_page_hwecc)) {
                        printk(KERN_WARNING "No ECC functions supplied, "
                               "Hardware ECC not possible\n");
                        BUG();