mtd: Add bad block table overrides to Davinci NAND driver
authorMark A. Greer <mgreer@mvista.com>
Mon, 12 Oct 2009 23:16:37 +0000 (16:16 -0700)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Mon, 30 Nov 2009 11:31:09 +0000 (11:31 +0000)
The existing NAND infrastructure allows the default main and
mirror bad block tables to be overridden in nand_default_bbt().
However, the davinci_nand driver does not support this.  Add
that support by adding fields to the davinci driver's platform
data so platform code can pass in their own bbt's and make the
davinci_nand driver honor them.

Signed-off-by: Mark A. Greer <mgreer@mvista.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
CC: Sudhakar Rajashekhara <sudhakar.raj@ti.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
arch/arm/mach-davinci/include/mach/nand.h
drivers/mtd/nand/davinci_nand.c

index b520c4b5678a2480b8e454b25b7f3b9034c84dae..b2ad8090bd1058b86367c19456a3a0ef42d57efb 100644 (file)
@@ -79,6 +79,10 @@ struct davinci_nand_pdata {          /* platform_data */
 
        /* e.g. NAND_BUSWIDTH_16 or NAND_USE_FLASH_BBT */
        unsigned                options;
+
+       /* Main and mirror bbt descriptor overrides */
+       struct nand_bbt_descr   *bbt_td;
+       struct nand_bbt_descr   *bbt_md;
 };
 
 #endif /* __ARCH_ARM_DAVINCI_NAND_H */
index 68cc9247fdb065fd2c2a44bc04b9852f7f6ded23..fe3eba87de40687225658d2aea50f1760b15de1f 100644 (file)
@@ -591,6 +591,8 @@ static int __init nand_davinci_probe(struct platform_device *pdev)
 
        /* options such as NAND_USE_FLASH_BBT or 16-bit widths */
        info->chip.options      = pdata->options;
+       info->chip.bbt_td       = pdata->bbt_td;
+       info->chip.bbt_md       = pdata->bbt_md;
 
        info->ioaddr            = (uint32_t __force) vaddr;