From d47809a8b60c130ebaa9545dc1fef6048fb231e7 Mon Sep 17 00:00:00 2001 From: Huang Shijie Date: Fri, 9 Nov 2012 16:23:45 +0800 Subject: [PATCH] --- yaml --- r: 347179 b: refs/heads/master c: 07300164657526d8d26c626c43723c310fbf3616 h: refs/heads/master i: 347177: 10d68dbe7e2349efd34819e42754880bca67b8d2 347175: a5aba72e24c273ae3e9d20be11cb4e48d6501326 v: v3 --- [refs] | 2 +- trunk/drivers/mtd/nand/nand_base.c | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index e8e753bbbe35..0338dd0adf8f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ded4c55d108e0e4e4ba221b39a782e85d77a5ca0 +refs/heads/master: 07300164657526d8d26c626c43723c310fbf3616 diff --git a/trunk/drivers/mtd/nand/nand_base.c b/trunk/drivers/mtd/nand/nand_base.c index 01505406ca7b..95d56ed8500a 100644 --- a/trunk/drivers/mtd/nand/nand_base.c +++ b/trunk/drivers/mtd/nand/nand_base.c @@ -3329,6 +3329,8 @@ int nand_scan_ident(struct mtd_info *mtd, int maxchips, return PTR_ERR(type); } + chip->select_chip(mtd, -1); + /* Check for a chip array */ for (i = 1; i < maxchips; i++) { chip->select_chip(mtd, i); @@ -3338,8 +3340,11 @@ int nand_scan_ident(struct mtd_info *mtd, int maxchips, chip->cmdfunc(mtd, NAND_CMD_READID, 0x00, -1); /* Read manufacturer and device IDs */ if (nand_maf_id != chip->read_byte(mtd) || - nand_dev_id != chip->read_byte(mtd)) + nand_dev_id != chip->read_byte(mtd)) { + chip->select_chip(mtd, -1); break; + } + chip->select_chip(mtd, -1); } if (i > 1) pr_info("%d NAND chips detected\n", i); @@ -3598,9 +3603,6 @@ int nand_scan_tail(struct mtd_info *mtd) /* Initialize state */ chip->state = FL_READY; - /* De-select the device */ - chip->select_chip(mtd, -1); - /* Invalidate the pagebuffer reference */ chip->pagebuf = -1;