b9dfb81f2a
SVN-Revision: 13609
59 lines
1.6 KiB
Diff
Executable File
59 lines
1.6 KiB
Diff
Executable File
From 68108d95040732cebf06296affaaeaaf76029c3d Mon Sep 17 00:00:00 2001
|
|
From: mokopatches <mokopatches@openmoko.org>
|
|
Date: Wed, 16 Jul 2008 14:44:50 +0100
|
|
Subject: [PATCH] s3c24xx-nand-largepage.patch
|
|
MTD: S3C24XX large page NAND support
|
|
|
|
This adds support for using large page NAND devices
|
|
with the S3C24XX NAND controller. This also adds the
|
|
file Documentation/arm/Samsung-S3C24XX/NAND.txt to
|
|
describe the differences.
|
|
|
|
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
|
|
---
|
|
drivers/mtd/nand/s3c2410.c | 28 ++++++++++++++++++++++++++++
|
|
1 files changed, 28 insertions(+), 0 deletions(-)
|
|
|
|
diff --git a/drivers/mtd/nand/s3c2410.c b/drivers/mtd/nand/s3c2410.c
|
|
index cd2e1da..6e7a5b9 100644
|
|
--- a/drivers/mtd/nand/s3c2410.c
|
|
+++ b/drivers/mtd/nand/s3c2410.c
|
|
@@ -726,6 +726,34 @@ static void s3c2410_nand_update_chip(struct s3c2410_nand_info *info,
|
|
}
|
|
}
|
|
|
|
+/* s3c2410_nand_update_chip
|
|
+ *
|
|
+ * post-probe chip update, to change any items, such as the
|
|
+ * layout for large page nand
|
|
+ */
|
|
+
|
|
+static void s3c2410_nand_update_chip(struct s3c2410_nand_info *info,
|
|
+ struct s3c2410_nand_mtd *nmtd)
|
|
+{
|
|
+ struct nand_chip *chip = &nmtd->chip;
|
|
+
|
|
+ printk("%s: chip %p: %d\n", __func__, chip, chip->page_shift);
|
|
+
|
|
+ if (hardware_ecc) {
|
|
+ /* change the behaviour depending on wether we are using
|
|
+ * the large or small page nand device */
|
|
+
|
|
+ if (chip->page_shift > 10) {
|
|
+ chip->ecc.size = 256;
|
|
+ chip->ecc.bytes = 3;
|
|
+ } else {
|
|
+ chip->ecc.size = 512;
|
|
+ chip->ecc.bytes = 3;
|
|
+ chip->ecc.layout = &nand_hw_eccoob;
|
|
+ }
|
|
+ }
|
|
+}
|
|
+
|
|
/* s3c2410_nand_probe
|
|
*
|
|
* called by device layer when it finds a device matching
|
|
--
|
|
1.5.6.3
|
|
|