From 2b4a210bd1eeda35d11c3a83b0a4ac19b1501c75 Mon Sep 17 00:00:00 2001 From: David Woodhouse Date: Mon, 23 Oct 2006 14:29:04 +0100 Subject: [PATCH] --- yaml --- r: 45649 b: refs/heads/master c: 470b0a90d6a21cb72b671215f12ec7ec8a0db2c0 h: refs/heads/master i: 45647: 40aec123c5957008f45b2427e7467df2ce071eb7 v: v3 --- [refs] | 2 +- trunk/drivers/mtd/nand/cafe.c | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 3d5fd550ff5d..37bf1b2c6064 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fbad5696c5c45982d02e05b85922bad6eb6e6349 +refs/heads/master: 470b0a90d6a21cb72b671215f12ec7ec8a0db2c0 diff --git a/trunk/drivers/mtd/nand/cafe.c b/trunk/drivers/mtd/nand/cafe.c index 10132efd0588..6bcb430b951c 100644 --- a/trunk/drivers/mtd/nand/cafe.c +++ b/trunk/drivers/mtd/nand/cafe.c @@ -67,6 +67,9 @@ module_param(skipbbt, int, 0644); static int debug = 0; module_param(debug, int, 0644); +static int checkecc = 0; +module_param(checkecc, int, 0644); + /* Hrm. Why isn't this already conditional on something in the struct device? */ #define cafe_dev_dbg(dev, args...) do { if (debug) dev_dbg(dev, ##args); } while(0) @@ -214,7 +217,7 @@ static void cafe_nand_cmdfunc(struct mtd_info *mtd, unsigned command, writel(cafe->ctl2 | 0x100 | NAND_CMD_READSTART, cafe->mmio + CAFE_NAND_CTRL2); do_command: -#if 1 +#if 0 /* http://dev.laptop.org/ticket/200 ECC on read only works if we read precisely 0x80e bytes */ if (cafe->datalen == 2112) @@ -382,7 +385,7 @@ static int cafe_nand_read_page(struct mtd_info *mtd, struct nand_chip *chip, chip->read_buf(mtd, buf, mtd->writesize); chip->read_buf(mtd, chip->oob_poi, mtd->oobsize); - if (readl(cafe->mmio + CAFE_NAND_ECC_RESULT) & (1<<18)) { + if (checkecc && readl(cafe->mmio + CAFE_NAND_ECC_RESULT) & (1<<18)) { unsigned short syn[8]; int i;