aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mtd
diff options
context:
space:
mode:
authorDavid Woodhouse <dwmw2@infradead.org>2006-10-23 09:29:04 -0400
committerDavid Woodhouse <dwmw2@infradead.org>2006-10-23 09:29:04 -0400
commit470b0a90d6a21cb72b671215f12ec7ec8a0db2c0 (patch)
tree49cb5066b51a44e7c1905508074f43fb0f3a56f1 /drivers/mtd
parentfbad5696c5c45982d02e05b85922bad6eb6e6349 (diff)
[MTD] NAND: Disable ECC checking on CAFÉ since it's broken for now
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Diffstat (limited to 'drivers/mtd')
-rw-r--r--drivers/mtd/nand/cafe.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/mtd/nand/cafe.c b/drivers/mtd/nand/cafe.c
index 10132efd0588..6bcb430b951c 100644
--- a/drivers/mtd/nand/cafe.c
+++ b/drivers/mtd/nand/cafe.c
@@ -67,6 +67,9 @@ module_param(skipbbt, int, 0644);
67static int debug = 0; 67static int debug = 0;
68module_param(debug, int, 0644); 68module_param(debug, int, 0644);
69 69
70static int checkecc = 0;
71module_param(checkecc, int, 0644);
72
70/* Hrm. Why isn't this already conditional on something in the struct device? */ 73/* Hrm. Why isn't this already conditional on something in the struct device? */
71#define cafe_dev_dbg(dev, args...) do { if (debug) dev_dbg(dev, ##args); } while(0) 74#define cafe_dev_dbg(dev, args...) do { if (debug) dev_dbg(dev, ##args); } while(0)
72 75
@@ -214,7 +217,7 @@ static void cafe_nand_cmdfunc(struct mtd_info *mtd, unsigned command,
214 writel(cafe->ctl2 | 0x100 | NAND_CMD_READSTART, cafe->mmio + CAFE_NAND_CTRL2); 217 writel(cafe->ctl2 | 0x100 | NAND_CMD_READSTART, cafe->mmio + CAFE_NAND_CTRL2);
215 218
216 do_command: 219 do_command:
217#if 1 220#if 0
218 /* http://dev.laptop.org/ticket/200 221 /* http://dev.laptop.org/ticket/200
219 ECC on read only works if we read precisely 0x80e bytes */ 222 ECC on read only works if we read precisely 0x80e bytes */
220 if (cafe->datalen == 2112) 223 if (cafe->datalen == 2112)
@@ -382,7 +385,7 @@ static int cafe_nand_read_page(struct mtd_info *mtd, struct nand_chip *chip,
382 chip->read_buf(mtd, buf, mtd->writesize); 385 chip->read_buf(mtd, buf, mtd->writesize);
383 chip->read_buf(mtd, chip->oob_poi, mtd->oobsize); 386 chip->read_buf(mtd, chip->oob_poi, mtd->oobsize);
384 387
385 if (readl(cafe->mmio + CAFE_NAND_ECC_RESULT) & (1<<18)) { 388 if (checkecc && readl(cafe->mmio + CAFE_NAND_ECC_RESULT) & (1<<18)) {
386 unsigned short syn[8]; 389 unsigned short syn[8];
387 int i; 390 int i;
388 391