diff options
author | Thomas Gleixner <tglx@cruncher.tec.linutronix.de> | 2006-05-23 06:00:46 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@cruncher.tec.linutronix.de> | 2006-05-23 06:00:46 -0400 |
commit | 6dfc6d250d0b7ebaa6423c44dcd09fcfe68deabd (patch) | |
tree | 2be25b1e302eca5984a8ad5ed3e5bde77bafaabb /drivers/mtd/nand/s3c2410.c | |
parent | 7aa65bfd6793a56cc3bbce8436abbfea3a7bdd1f (diff) |
[MTD] NAND modularize ECC
First step of modularizing ECC support.
- Move ECC related functionality into a seperate embedded data structure
- Get rid of the hardware dependend constants to simplify new ECC models
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'drivers/mtd/nand/s3c2410.c')
-rw-r--r-- | drivers/mtd/nand/s3c2410.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/mtd/nand/s3c2410.c b/drivers/mtd/nand/s3c2410.c index f8002596de8b..608340a25278 100644 --- a/drivers/mtd/nand/s3c2410.c +++ b/drivers/mtd/nand/s3c2410.c | |||
@@ -520,18 +520,20 @@ static void s3c2410_nand_init_chip(struct s3c2410_nand_info *info, | |||
520 | nmtd->set = set; | 520 | nmtd->set = set; |
521 | 521 | ||
522 | if (hardware_ecc) { | 522 | if (hardware_ecc) { |
523 | chip->correct_data = s3c2410_nand_correct_data; | 523 | chip->ecc.correct = s3c2410_nand_correct_data; |
524 | chip->enable_hwecc = s3c2410_nand_enable_hwecc; | 524 | chip->ecc.hwctl = s3c2410_nand_enable_hwecc; |
525 | chip->calculate_ecc = s3c2410_nand_calculate_ecc; | 525 | chip->ecc.calculate = s3c2410_nand_calculate_ecc; |
526 | chip->eccmode = NAND_ECC_HW3_512; | 526 | chip->ecc.mode = NAND_ECC_HW; |
527 | chip->ecc.size = 512; | ||
528 | chip->ecc.bytes = 3; | ||
527 | chip->autooob = &nand_hw_eccoob; | 529 | chip->autooob = &nand_hw_eccoob; |
528 | 530 | ||
529 | if (info->is_s3c2440) { | 531 | if (info->is_s3c2440) { |
530 | chip->enable_hwecc = s3c2440_nand_enable_hwecc; | 532 | chip->ecc.hwctl = s3c2440_nand_enable_hwecc; |
531 | chip->calculate_ecc = s3c2440_nand_calculate_ecc; | 533 | chip->ecc.calculate = s3c2440_nand_calculate_ecc; |
532 | } | 534 | } |
533 | } else { | 535 | } else { |
534 | chip->eccmode = NAND_ECC_SOFT; | 536 | chip->ecc.mode = NAND_ECC_SOFT; |
535 | } | 537 | } |
536 | } | 538 | } |
537 | 539 | ||