summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHaojian Zhuang <haojian.zhuang@marvell.com>2009-09-10 08:27:23 +0200
committerEric Miao <eric.y.miao@gmail.com>2009-12-01 02:02:40 +0100
commit346e125967c39fc25263f3071dfc88224ae843f4 (patch)
tree2bb95839a96eb40d61f0bf1d94764d2c77a827f0
parentpxa3xx_nand: remove hardcode irq number (diff)
downloadlinux-346e125967c39fc25263f3071dfc88224ae843f4.tar.xz
linux-346e125967c39fc25263f3071dfc88224ae843f4.zip
pxa3xx_nand: disable nand irq in initialization
In some bootloader, IRQ is enabled. Writing nand triggers unexpected interrupts. So disable nand irq in initialization. After nand initialized and in working state, irq is controlled by nand driver. Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com> Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
-rw-r--r--drivers/mtd/nand/pxa3xx_nand.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/mtd/nand/pxa3xx_nand.c b/drivers/mtd/nand/pxa3xx_nand.c
index e75b1bf6df12..11f32454fc77 100644
--- a/drivers/mtd/nand/pxa3xx_nand.c
+++ b/drivers/mtd/nand/pxa3xx_nand.c
@@ -1244,6 +1244,9 @@ static int pxa3xx_nand_probe(struct platform_device *pdev)
if (ret)
goto fail_free_io;
+ /* initialize all interrupts to be disabled */
+ disable_int(info, NDSR_MASK);
+
ret = request_irq(irq, pxa3xx_nand_irq, IRQF_DISABLED,
pdev->name, info);
if (ret < 0) {