Merge with git://www.denx.de/git/u-boot.git
[oweals/u-boot.git] / drivers / nand / nand.c
index 3899045a72c7010fc4d325703cce6ad2e3ba18b3..9fef71d62938a5cd3ca5222f0893b8d5fa42edc0 100644 (file)
@@ -39,7 +39,7 @@ static ulong base_address[CFG_MAX_NAND_DEVICE] = CFG_NAND_BASE_LIST;
 
 static const char default_nand_name[] = "nand";
 
-extern void board_nand_init(struct nand_chip *nand);
+extern int board_nand_init(struct nand_chip *nand);
 
 static void nand_init_chip(struct mtd_info *mtd, struct nand_chip *nand,
                           ulong base_addr)
@@ -47,13 +47,16 @@ static void nand_init_chip(struct mtd_info *mtd, struct nand_chip *nand,
        mtd->priv = nand;
 
        nand->IO_ADDR_R = nand->IO_ADDR_W = (void  __iomem *)base_addr;
-       board_nand_init(nand);
-
-       if (nand_scan(mtd, 1) == 0) {
-               if (!mtd->name)
-                       mtd->name = (char *)default_nand_name;
-       } else
+       if (board_nand_init(nand) == 0) {
+               if (nand_scan(mtd, 1) == 0) {
+                       if (!mtd->name)
+                               mtd->name = (char *)default_nand_name;
+               } else
+                       mtd->name = NULL;
+       } else {
                mtd->name = NULL;
+               mtd->size = 0;
+       }
 
 }