diff options
Diffstat (limited to 'drivers/mtd')
-rw-r--r-- | drivers/mtd/nand/nand_util.c | 4 | ||||
-rw-r--r-- | drivers/mtd/nand/omap_gpmc.c | 24 |
2 files changed, 12 insertions, 16 deletions
diff --git a/drivers/mtd/nand/nand_util.c b/drivers/mtd/nand/nand_util.c index 34b9755858..dc93d1f403 100644 --- a/drivers/mtd/nand/nand_util.c +++ b/drivers/mtd/nand/nand_util.c @@ -238,8 +238,8 @@ static struct nand_ecclayout yaffs_ecclayout = { static struct nand_ecclayout yaffs2_ecclayout = { .eccbytes = 12, .eccpos = { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, - .oobfree = { { 1, 1}, { 14, 50} }, - .oobavail = 51, + .oobfree = { { 14, 50} }, + .oobavail = 50, }; #else /* ecclayout on chips that page_size = 2K, byte 0,1 is bad block marker */ diff --git a/drivers/mtd/nand/omap_gpmc.c b/drivers/mtd/nand/omap_gpmc.c index b60fa958f9..b746c4b375 100644 --- a/drivers/mtd/nand/omap_gpmc.c +++ b/drivers/mtd/nand/omap_gpmc.c @@ -301,16 +301,6 @@ void omap_nand_switch_ecc(int32_t hardware) * explanation */ -#ifdef CONFIG_OMAP3_LV_SOM -static uint8_t omap3_lv_som_scan_ff_pattern[] = { 0xff, 0xff }; -static struct nand_bbt_descr omap3_lv_som_largepage_memorybased = { - .options = 0, - .offs = 0, - .len = 1, /* to match LoLo, only first byte is looked at */ - .pattern = omap3_lv_som_scan_ff_pattern -}; -#endif - int board_nand_init(struct nand_chip *nand) { int32_t gpmc_config = 0; @@ -360,11 +350,17 @@ int board_nand_init(struct nand_chip *nand) nand->chip_delay = 100; /* Default ECC mode */ +#if 0 + nand->ecc.mode = NAND_ECC_HW; + nand->ecc.layout = &hw_nand_oob; + nand->ecc.size = 512; + nand->ecc.bytes = 3; + nand->ecc.hwctl = omap_enable_hwecc; + nand->ecc.correct = omap_correct_data; + nand->ecc.calculate = omap_calculate_ecc; + omap_hwecc_init(nand); +#else nand->ecc.mode = NAND_ECC_SOFT; - -#ifdef CONFIG_OMAP3_LV_SOM - /* Use our specific bad-block definition (first byte only) */ - nand->badblock_pattern = &omap3_lv_som_largepage_memorybased; #endif return 0; |