summaryrefslogtreecommitdiff
path: root/drivers/input
diff options
context:
space:
mode:
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>2013-06-05 14:23:18 (GMT)
committerSebastian Andrzej Siewior <bigeasy@linutronix.de>2013-06-12 16:50:22 (GMT)
commit00789e5deb0af08826bd0c602d21baa9016b54b5 (patch)
tree1f768996143ba0054dac1df240ffca5a24bc6dd7 /drivers/input
parent8c896308feae7fb2e8da4ae4c09fe2d2ca18ad7b (diff)
downloadlinux-00789e5deb0af08826bd0c602d21baa9016b54b5.tar.xz
input: ti_am335x_tsc: ACK the HW_PEN irq in ISR
The interrupt source IRQENB_HW_PEN is enabled in suspend and suposed to be used as a wake up source. Once this interrupt source is unmaksed, the devices ends up in ISR and never continues. This change ACKs the interrupt and disables it so the system does not freeze. Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Diffstat (limited to 'drivers/input')
-rw-r--r--drivers/input/touchscreen/ti_am335x_tsc.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/input/touchscreen/ti_am335x_tsc.c b/drivers/input/touchscreen/ti_am335x_tsc.c
index 1bceb25..2ba7703 100644
--- a/drivers/input/touchscreen/ti_am335x_tsc.c
+++ b/drivers/input/touchscreen/ti_am335x_tsc.c
@@ -308,6 +308,12 @@ static irqreturn_t titsc_irq(int irq, void *dev)
irqclr |= IRQENB_PENUP;
}
+ if (status & IRQENB_HW_PEN) {
+
+ titsc_writel(ts_dev, REG_IRQWAKEUP, 0x00);
+ titsc_writel(ts_dev, REG_IRQCLR, IRQENB_HW_PEN);
+ }
+
titsc_writel(ts_dev, REG_IRQSTATUS, irqclr);
am335x_tsc_se_update(ts_dev->mfd_tscadc);