summaryrefslogtreecommitdiff
path: root/drivers/mtd
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mtd')
-rw-r--r--drivers/mtd/nand/nand_util.c4
-rw-r--r--drivers/mtd/nand/omap_gpmc.c24
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;