12345678910111213141516171819202122232425262728293031323334353637 |
- ---
- drivers/mtd/nand/plat_nand.c | 13 ++++++++++++-
- include/linux/mtd/nand.h | 1 +
- 2 files changed, 13 insertions(+), 1 deletion(-)
- --- a/include/linux/mtd/nand.h
- +++ b/include/linux/mtd/nand.h
- @@ -863,6 +863,7 @@ struct platform_nand_chip {
- unsigned int options;
- unsigned int bbt_options;
- const char **part_probe_types;
- + int (*chip_fixup)(struct mtd_info *mtd);
- };
-
- /* Keep gcc happy */
- --- a/drivers/mtd/nand/plat_nand.c
- +++ b/drivers/mtd/nand/plat_nand.c
- @@ -87,7 +87,18 @@ static int plat_nand_probe(struct platfo
- }
-
- /* Scan to find existence of the device */
- - if (nand_scan(&data->mtd, pdata->chip.nr_chips)) {
- + if (nand_scan_ident(&data->mtd, pdata->chip.nr_chips, NULL)) {
- + err = -ENXIO;
- + goto out;
- + }
- +
- + if (pdata->chip.chip_fixup) {
- + err = pdata->chip.chip_fixup(&data->mtd);
- + if (err)
- + goto out;
- + }
- +
- + if (nand_scan_tail(&data->mtd)) {
- err = -ENXIO;
- goto out;
- }
|