Allow software ECC forcing.

Signed-off-by: Andy Green <[email protected]>
---

 arch/arm/plat-s3c/include/plat/nand.h |    1 +
 drivers/mtd/nand/s3c2410.c            |    2 +-
 2 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/arch/arm/plat-s3c/include/plat/nand.h 
b/arch/arm/plat-s3c/include/plat/nand.h
index 70e1a72..b37ded0 100644
--- a/arch/arm/plat-s3c/include/plat/nand.h
+++ b/arch/arm/plat-s3c/include/plat/nand.h
@@ -24,6 +24,7 @@
 struct s3c2410_nand_set {
        unsigned int            disable_ecc:1;
        unsigned int            use_bbt:1;
+       unsigned int            force_soft_ecc:1;
 
        int                     nr_chips;
        int                     nr_partitions;
diff --git a/drivers/mtd/nand/s3c2410.c b/drivers/mtd/nand/s3c2410.c
index 3c733b9..65ccf17 100644
--- a/drivers/mtd/nand/s3c2410.c
+++ b/drivers/mtd/nand/s3c2410.c
@@ -743,7 +743,7 @@ static void s3c2410_nand_init_chip(struct s3c2410_nand_info 
*info,
        nmtd->mtd.owner    = THIS_MODULE;
        nmtd->set          = set;
 
-       if (hardware_ecc) {
+       if (!set->force_soft_ecc && hardware_ecc) {
                chip->ecc.calculate = s3c2410_nand_calculate_ecc;
                chip->ecc.correct   = s3c2410_nand_correct_data;
                chip->ecc.mode      = NAND_ECC_HW;


Reply via email to