aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/plat-s3c24xx/irq.c
diff options
context:
space:
mode:
authormichael <trimarchi@gandalf.sssup.it>2008-11-21 11:56:56 +0000
committerAndy Green <agreen@pads.home.warmcat.com>2008-11-21 11:56:56 +0000
commitbefe49bc945a34c9b06c9ec3dc7626d16ea248ce (patch)
tree98774577b84ea9c45a5ff565d411705f8f564762 /arch/arm/plat-s3c24xx/irq.c
parentc91b66f4766d272f56b26274b4033dd13405ebc4 (diff)
fix-srcpnd-int-clear-order.patch
The S3C2410_SRCPND is not clear correctly until the S3C2410_SUBSRCPND is cleared. Signed-off-by: michael <trimarchi@gandalf.sssup.it>
Diffstat (limited to 'arch/arm/plat-s3c24xx/irq.c')
-rw-r--r--arch/arm/plat-s3c24xx/irq.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/arch/arm/plat-s3c24xx/irq.c b/arch/arm/plat-s3c24xx/irq.c
index f0ed85c6b88..f31770cf71a 100644
--- a/arch/arm/plat-s3c24xx/irq.c
+++ b/arch/arm/plat-s3c24xx/irq.c
@@ -701,26 +701,26 @@ void __init s3c24xx_init_irq(void)
last = 0;
for (i = 0; i < 4; i++) {
- pend = __raw_readl(S3C2410_INTPND);
+ pend = __raw_readl(S3C2410_SUBSRCPND);
if (pend == 0 || pend == last)
break;
- __raw_writel(pend, S3C2410_SRCPND);
- __raw_writel(pend, S3C2410_INTPND);
- printk("irq: clearing pending status %08x\n", (int)pend);
+ printk("irq: clearing subpending status %08x\n", (int)pend);
+ __raw_writel(pend, S3C2410_SUBSRCPND);
last = pend;
}
last = 0;
for (i = 0; i < 4; i++) {
- pend = __raw_readl(S3C2410_SUBSRCPND);
+ pend = __raw_readl(S3C2410_INTPND);
if (pend == 0 || pend == last)
break;
- printk("irq: clearing subpending status %08x\n", (int)pend);
- __raw_writel(pend, S3C2410_SUBSRCPND);
+ __raw_writel(pend, S3C2410_SRCPND);
+ __raw_writel(pend, S3C2410_INTPND);
+ printk("irq: clearing pending status %08x\n", (int)pend);
last = pend;
}