diff options
author | David Woodhouse <dwmw2@infradead.org> | 2006-10-23 09:29:04 -0400 |
---|---|---|
committer | David Woodhouse <dwmw2@infradead.org> | 2006-10-23 09:29:04 -0400 |
commit | 470b0a90d6a21cb72b671215f12ec7ec8a0db2c0 (patch) | |
tree | 49cb5066b51a44e7c1905508074f43fb0f3a56f1 /drivers | |
parent | fbad5696c5c45982d02e05b85922bad6eb6e6349 (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')
-rw-r--r-- | drivers/mtd/nand/cafe.c | 7 |
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); | |||
67 | static int debug = 0; | 67 | static int debug = 0; |
68 | module_param(debug, int, 0644); | 68 | module_param(debug, int, 0644); |
69 | 69 | ||
70 | static int checkecc = 0; | ||
71 | module_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 | ||