mtd: rawnand: add a way to pass an ID table with nand_scan()
As part of the work of migrating all the drivers to nand_scan(), and because nand_scan() does not provide a way to pass an ID table, rename the function nand_scan_with_ids() and add a third parameter to give a flash ID table (like what was done with nand_scan_ident()). Create a nand_scan() helper that is just a wrapper of nand_scan_with_ids(), passing NULL as the ID table. This way a controller drivers can continue using nand_scan() transparently. Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
This commit is contained in:
parent
553b0c6416
commit
256c4fc76a
|
@ -6630,24 +6630,26 @@ EXPORT_SYMBOL(nand_scan_tail);
|
|||
#endif
|
||||
|
||||
/**
|
||||
* nand_scan - [NAND Interface] Scan for the NAND device
|
||||
* nand_scan_with_ids - [NAND Interface] Scan for the NAND device
|
||||
* @mtd: MTD device structure
|
||||
* @maxchips: number of chips to scan for
|
||||
* @ids: optional flash IDs table
|
||||
*
|
||||
* This fills out all the uninitialized function pointers with the defaults.
|
||||
* The flash ID is read and the mtd/chip structures are filled with the
|
||||
* appropriate values.
|
||||
*/
|
||||
int nand_scan(struct mtd_info *mtd, int maxchips)
|
||||
int nand_scan_with_ids(struct mtd_info *mtd, int maxchips,
|
||||
struct nand_flash_dev *ids)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = nand_scan_ident(mtd, maxchips, NULL);
|
||||
ret = nand_scan_ident(mtd, maxchips, ids);
|
||||
if (!ret)
|
||||
ret = nand_scan_tail(mtd);
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL(nand_scan);
|
||||
EXPORT_SYMBOL(nand_scan_with_ids);
|
||||
|
||||
/**
|
||||
* nand_cleanup - [NAND Interface] Free resources held by the NAND device
|
||||
|
|
|
@ -28,7 +28,14 @@ struct nand_flash_dev;
|
|||
struct device_node;
|
||||
|
||||
/* Scan and identify a NAND device */
|
||||
int nand_scan(struct mtd_info *mtd, int max_chips);
|
||||
int nand_scan_with_ids(struct mtd_info *mtd, int max_chips,
|
||||
struct nand_flash_dev *ids);
|
||||
|
||||
static inline int nand_scan(struct mtd_info *mtd, int max_chips)
|
||||
{
|
||||
return nand_scan_with_ids(mtd, max_chips, NULL);
|
||||
}
|
||||
|
||||
/*
|
||||
* Separate phases of nand_scan(), allowing board driver to intervene
|
||||
* and override command or ECC setup according to flash type.
|
||||
|
|
Loading…
Reference in New Issue