Signed-off-by: Eric Bénard <[email protected]>
---
 drivers/mtd/nand/nand_base.c | 20 +++++---------------
 1 file changed, 5 insertions(+), 15 deletions(-)

diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index e8103cf..d04e24b 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -1167,10 +1167,9 @@ static struct nand_flash_dev *nand_get_flash_type(struct 
mtd_info *mtd,
 
        chip->cmdfunc(mtd, NAND_CMD_READID, 0x00, -1);
 
-       /* Read manufacturer and device IDs */
-
-       id_data[0] = chip->read_byte(mtd);
-       id_data[1] = chip->read_byte(mtd);
+       /* Read entire ID string */
+       for (i = 0; i < 8; i++)
+               id_data[i] = chip->read_byte(mtd);
 
        if (id_data[0] != *maf_id || id_data[1] != dev_id) {
                pr_err("%s: second ID read did not match "
@@ -1190,20 +1189,11 @@ static struct nand_flash_dev 
*nand_get_flash_type(struct mtd_info *mtd,
        if (!type->name || !type->pagesize) {
                /* Check is chip is ONFI compliant */
                ret = nand_flash_detect_onfi(mtd, chip, &busw);
-               if (ret)
                        goto ident_done;
-               else {
-                       pr_err("NAND type unknown: %02x,%02x\n", *maf_id, 
dev_id);
-                       return ERR_PTR(-ENODEV);
-               }
        }
 
-       chip->cmdfunc(mtd, NAND_CMD_READID, 0x00, -1);
-
-       /* Read entire ID string */
-
-       for (i = 0; i < 8; i++)
-               id_data[i] = chip->read_byte(mtd);
+       if (!type->name)
+               return ERR_PTR(-ENODEV);
 
        if (!mtd->name)
                mtd->name = type->name;
-- 
1.8.1.4


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to