Skip to content

Commit

Permalink
mtd: rawnand: do not execute nand_scan_ident() if maxchips is zero
Browse files Browse the repository at this point in the history
Some driver (eg. docg4) will need to handle themselves the
identification phase. As part of the migration to use nand_scan()
everywhere (which will unconditionnaly call nand_scan_ident()), we add
a condition at the start of nand_scan_with_ids() to jump over
nand_scan_ident() if the maxchips parameters is zero, meaning that the
driver does not want the core to handle this phase.

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Reviewed-by: Boris Brezillon <boris.brezillon@bootlin.com>
  • Loading branch information
Miquel Raynal committed Jul 31, 2018
1 parent 577e010 commit 49aa76b
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions drivers/mtd/nand/raw/nand_base.c
Original file line number Diff line number Diff line change
Expand Up @@ -6735,7 +6735,9 @@ static void nand_detach(struct nand_chip *chip)
/**
* nand_scan_with_ids - [NAND Interface] Scan for the NAND device
* @mtd: MTD device structure
* @maxchips: number of chips to scan for
* @maxchips: number of chips to scan for. @nand_scan_ident() will not be run if
* this parameter is zero (useful for specific drivers that must
* handle this part of the process themselves, e.g docg4).
* @ids: optional flash IDs table
*
* This fills out all the uninitialized function pointers with the defaults.
Expand All @@ -6748,9 +6750,11 @@ int nand_scan_with_ids(struct mtd_info *mtd, int maxchips,
struct nand_chip *chip = mtd_to_nand(mtd);
int ret;

ret = nand_scan_ident(mtd, maxchips, ids);
if (ret)
return ret;
if (maxchips) {
ret = nand_scan_ident(mtd, maxchips, ids);
if (ret)
return ret;
}

ret = nand_attach(chip);
if (ret)
Expand Down

0 comments on commit 49aa76b

Please sign in to comment.