Ticket #7737: 080-mtd_plat_nand_chip_fixup.patch

File 080-mtd_plat_nand_chip_fixup.patch, 822 bytes (added by acoul, 6 years ago)
  • include/linux/mtd/nand.h

    a b struct platform_nand_chip { 
    512512        int                     chip_delay; 
    513513        unsigned int            options; 
    514514        const char              **part_probe_types; 
     515        int                     (*chip_fixup)(struct mtd_info *mtd); 
    515516        void                    (*set_parts)(uint64_t size, 
    516517                                        struct platform_nand_chip *chip); 
    517518        void                    *priv; 
  • drivers/mtd/nand/plat_nand.c

    a b static int __devinit plat_nand_probe(str 
    9191        } 
    9292 
    9393        /* Scan to find existance of the device */ 
    94         if (nand_scan(&data->mtd, pdata->chip.nr_chips)) { 
     94        if (nand_scan_ident(&data->mtd, 1, NULL)) { 
     95                res = -ENXIO; 
     96                goto out; 
     97        } 
     98 
     99        if (pdata->chip.chip_fixup) { 
     100                res = pdata->chip.chip_fixup(&data->mtd); 
     101                if (res) 
     102                        goto out; 
     103        } 
     104 
     105        if (nand_scan_tail(&data->mtd)) { 
    95106                err = -ENXIO; 
    96107                goto out; 
    97108        }