linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] MTD: s3c2410_nand: Add option to disable hw ECC at runtime
@ 2011-04-12 19:47 Lars-Peter Clausen
  2011-04-12 19:47 ` [PATCH 2/2] ARM: s3c2440: GTA02: Disable hardware ECC by default Lars-Peter Clausen
  2011-04-14 12:08 ` [PATCH 1/2] MTD: s3c2410_nand: Add option to disable hw ECC at runtime Artem Bityutskiy
  0 siblings, 2 replies; 6+ messages in thread
From: Lars-Peter Clausen @ 2011-04-12 19:47 UTC (permalink / raw)
  To: Artem Bityutskiy
  Cc: Ben Dooks, Kukjin Kim, linux-mtd, linux-kernel, Holger Freyther,
	Lars-Peter Clausen

From: Holger Freyther <zecke@openmoko.org>

This patch adds a flag to the s3c2410_nand platform data, which configures
whether hardware ECC is used.

Currently it is only possible to decide whether hw ECC should be used or not at
compile time through a config option. But if you want to build a kernel which
runs on multiple devices you might have a configuration where some devices
require hw ECC and some devices which want software ECC.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 arch/arm/plat-samsung/include/plat/nand.h |    1 +
 drivers/mtd/nand/s3c2410.c                |    2 +-
 2 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/arch/arm/plat-samsung/include/plat/nand.h b/arch/arm/plat-samsung/include/plat/nand.h
index b64115f..cbdc8f0 100644
--- a/arch/arm/plat-samsung/include/plat/nand.h
+++ b/arch/arm/plat-samsung/include/plat/nand.h
@@ -49,6 +49,7 @@ struct s3c2410_platform_nand {
 	int	twrph1;	/* time for release CLE/ALE from nWE/nOE inactive */
 
 	unsigned int	ignore_unset_ecc:1;
+	unsigned int	software_ecc:1; /* force software ecc at runtime */
 
 	int			nr_sets;
 	struct s3c2410_nand_set *sets;
diff --git a/drivers/mtd/nand/s3c2410.c b/drivers/mtd/nand/s3c2410.c
index cea775a..4666b5e 100644
--- a/drivers/mtd/nand/s3c2410.c
+++ b/drivers/mtd/nand/s3c2410.c
@@ -842,7 +842,7 @@ static void s3c2410_nand_init_chip(struct s3c2410_nand_info *info,
 	nmtd->mtd.owner    = THIS_MODULE;
 	nmtd->set	   = set;
 
-	if (hardware_ecc) {
+	if (!(info->platform && info->platform->software_ecc) && hardware_ecc) {
 		chip->ecc.calculate = s3c2410_nand_calculate_ecc;
 		chip->ecc.correct   = s3c2410_nand_correct_data;
 		chip->ecc.mode	    = NAND_ECC_HW;
-- 
1.7.2.5


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2011-04-28 13:52 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-12 19:47 [PATCH 1/2] MTD: s3c2410_nand: Add option to disable hw ECC at runtime Lars-Peter Clausen
2011-04-12 19:47 ` [PATCH 2/2] ARM: s3c2440: GTA02: Disable hardware ECC by default Lars-Peter Clausen
2011-04-14 12:08 ` [PATCH 1/2] MTD: s3c2410_nand: Add option to disable hw ECC at runtime Artem Bityutskiy
2011-04-14 14:48   ` Lars-Peter Clausen
2011-04-15 14:01     ` Artem Bityutskiy
2011-04-28 13:51       ` Russell King - ARM Linux

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).