aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Green <andy@openmoko.com>2008-12-04 20:47:54 +0000
committerAndy Green <agreen@pads.home.warmcat.com>2008-12-04 20:47:54 +0000
commit5430bdb92ec379dd0cd4d52d80180efc0b79e92b (patch)
tree2340c2900a9ac10c3d4a3eaa8d5b1b82d3336e1e
parent2acbf1a22e63eb8ed8e2fe214a1ee868a8e7323c (diff)
fix-s3c-eint-offset-calc-error.patch
There's a bug in calculation of IRQ_EINT_BIT introduced on the test branch for pm changes for s3c by Ben Dooks fixed in this patch. There's also a bit of a mystery about how wake gets to wake EINT set of interrupts, I added a couple of lines that make it work for EINT4+ but not sure what's meant to be there for EINT0-3. Still, this gets GTA02 resume working again. cc: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Andy Green <andy@openmoko.com>
-rw-r--r--arch/arm/mach-s3c2410/include/mach/irqs.h2
-rw-r--r--arch/arm/plat-s3c24xx/irq-pm.c3
2 files changed, 4 insertions, 1 deletions
diff --git a/arch/arm/mach-s3c2410/include/mach/irqs.h b/arch/arm/mach-s3c2410/include/mach/irqs.h
index 4a82338c287..1d0629d9570 100644
--- a/arch/arm/mach-s3c2410/include/mach/irqs.h
+++ b/arch/arm/mach-s3c2410/include/mach/irqs.h
@@ -84,7 +84,7 @@
#define IRQ_EINT22 S3C2410_IRQ(50)
#define IRQ_EINT23 S3C2410_IRQ(51)
-#define IRQ_EINT_BIT(x) ((x) - (IRQ_EINT4 + 4))
+#define IRQ_EINT_BIT(x) ((x) - IRQ_EINT4 + 4)
#define IRQ_EINT(x) (((x) >= 4) ? (IRQ_EINT4 + (x) - 4) : (IRQ_EINT0 + (x)))
#define IRQ_LCD_FIFO S3C2410_IRQ(52)
diff --git a/arch/arm/plat-s3c24xx/irq-pm.c b/arch/arm/plat-s3c24xx/irq-pm.c
index b7acf1a8ecd..87bda522c1a 100644
--- a/arch/arm/plat-s3c24xx/irq-pm.c
+++ b/arch/arm/plat-s3c24xx/irq-pm.c
@@ -34,6 +34,9 @@ int s3c_irq_wake(unsigned int irqno, unsigned int state)
{
unsigned long irqbit = 1 << (irqno - IRQ_EINT0);
+ if (irqno >= IRQ_EINT4)
+ return s3c_irqext_wake(irqno, state);
+
if (!(s3c_irqwake_intallow & irqbit))
return -ENOENT;