Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cad40654c312fc51bdb520e9be91e29a9742bbcb
Commit:     cad40654c312fc51bdb520e9be91e29a9742bbcb
Parent:     be8444bdf34f7ba21e2364ca296c68e81033e3b2
Author:     David Woodhouse <[EMAIL PROTECTED]>
AuthorDate: Wed Nov 1 08:19:20 2006 +0800
Committer:  David Woodhouse <[EMAIL PROTECTED]>
CommitDate: Wed Nov 1 08:19:20 2006 +0800

    [MTD] NAND: Fix ECC settings in CAFÉ controller driver.
    
    We were resetting cafe->ctl2 to zero after an erase (and also during a
    write, but it was correctly reset after that). This meant that ECC reads
    after an erase were failing. Doh.
    
    Signed-off-by: David Woodhouse <[EMAIL PROTECTED]>
---
 drivers/mtd/nand/cafe.c |   10 +++-------
 1 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/drivers/mtd/nand/cafe.c b/drivers/mtd/nand/cafe.c
index c5d03b0..fad304b 100644
--- a/drivers/mtd/nand/cafe.c
+++ b/drivers/mtd/nand/cafe.c
@@ -159,6 +159,7 @@ static void cafe_nand_cmdfunc(struct mtd_info *mtd, 
unsigned command,
                /* Second half of a command we already calculated */
                cafe_writel(cafe, cafe->ctl2 | 0x100 | command, NAND_CTRL2);
                ctl1 = cafe->ctl1;
+               cafe->ctl2 &= ~(1<<30);
                cafe_dev_dbg(&cafe->pdev->dev, "Continue command, ctl1 %08x, 
#data %d\n",
                          cafe->ctl1, cafe->nr_data);
                goto do_command;
@@ -219,7 +220,6 @@ static void cafe_nand_cmdfunc(struct mtd_info *mtd, 
unsigned command,
                /* Ignore the first command of a pair; the hardware 
                   deals with them both at once, later */
                cafe->ctl1 = ctl1;
-               cafe->ctl2 = 0;
                cafe_dev_dbg(&cafe->pdev->dev, "Setup for delayed command, ctl1 
%08x, dlen %x\n",
                          cafe->ctl1, cafe->datalen);
                return;
@@ -281,9 +281,7 @@ static void cafe_nand_cmdfunc(struct mtd_info *mtd, 
unsigned command,
                             command, 500000-c, irqs, cafe_readl(cafe, 
NAND_IRQ));
        }
 
-
-       cafe->ctl2 &= ~(1<<8);
-       cafe->ctl2 &= ~(1<<30);
+       WARN_ON(cafe->ctl2 & (1<<30));
 
        switch (command) {
 
@@ -471,9 +469,7 @@ static void cafe_nand_write_page_lowlevel(struct mtd_info 
*mtd,
        chip->write_buf(mtd, chip->oob_poi, mtd->oobsize);
 
        /* Set up ECC autogeneration */
-       cafe->ctl2 |= (1<<27) | (1<<30);
-       if (mtd->writesize == 2048)
-               cafe->ctl2 |= (1<<29);
+       cafe->ctl2 |= (1<<30);
 }
 
 static int cafe_nand_write_page(struct mtd_info *mtd, struct nand_chip *chip,
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to