summaryrefslogtreecommitdiff
path: root/drivers/mtd/nand/edb7312.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-08-02 14:08:53 -0700
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-08-02 14:08:53 -0700
commit7a883eaf62f4b943ebec738ce3b0796c67ef5d32 (patch)
tree8c7382552b62a8f1629ce77a2ababb99ebe95112 /drivers/mtd/nand/edb7312.c
parent628506c8de058f94297dae1f8ef8caaea29c4369 (diff)
parent515495a1da9abf339b922b7919c4950e85b87b42 (diff)
Merge git://git.infradead.org/~dwmw2/mtd-2.6.23
* git://git.infradead.org/~dwmw2/mtd-2.6.23: [MTD] [NAND] nand_base.c: fix type of eccpos pointer [MTD] [NAND] at91_nand rdy_pin fix [MTD] [NAND] fix race in nand_base.c [MTD] [NAND] Fix refactoring of EDB7312 hwcontrol function. [MTD] Fix potential leak in rfd_ftl_add_mtd [JFFS2] Print correct node offset when complaining about broken data CRC [JFFS2] Fix suspend failure with JFFS2 GC thread. [JFFS2] Deletion dirents should be REF_NORMAL, not REF_PRISTINE. [JFFS2] Prevent oops after 'node added in wrong place' debug check
Diffstat (limited to 'drivers/mtd/nand/edb7312.c')
-rw-r--r--drivers/mtd/nand/edb7312.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/mtd/nand/edb7312.c b/drivers/mtd/nand/edb7312.c
index 1daf8231aaef..0146cdc48039 100644
--- a/drivers/mtd/nand/edb7312.c
+++ b/drivers/mtd/nand/edb7312.c
@@ -74,7 +74,7 @@ static struct mtd_partition partition_info[] = {
/*
* hardware specific access to control-lines
*
- * NAND_NCE: bit 0 -> bit 7
+ * NAND_NCE: bit 0 -> bit 6 (bit 7 = 1)
* NAND_CLE: bit 1 -> bit 4
* NAND_ALE: bit 2 -> bit 5
*/
@@ -83,12 +83,12 @@ static void ep7312_hwcontrol(struct mtd_info *mtd, int cmd, unsigned int ctrl)
struct nand_chip *chip = mtd->priv;
if (ctrl & NAND_CTRL_CHANGE) {
- unsigned char bits;
+ unsigned char bits = 0x80;
- bits = (ctrl & (NAND_CLE | NAND_ALE)) << 3;
- bits = (ctrl & NAND_NCE) << 7;
+ bits |= (ctrl & (NAND_CLE | NAND_ALE)) << 3;
+ bits |= (ctrl & NAND_NCE) ? 0x00 : 0x40;
- clps_writeb((clps_readb(ep7312_pxdr) & 0xB0) | 0x10,
+ clps_writeb((clps_readb(ep7312_pxdr) & 0xF0) | bits,
ep7312_pxdr);
}
if (cmd != NAND_CMD_NONE)