Input: ti_am335x_tsc - fix HWPEN interrupt handling
authorDave Gerlach <d-gerlach@ti.com>
Thu, 7 Jan 2016 19:13:34 +0000 (11:13 -0800)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Fri, 8 Jan 2016 01:26:22 +0000 (17:26 -0800)
Remove write to REG_IRQCLR and REG_IRQWAKEUP in interrupt handler for
IRQENB_HW_PEN as the resume handler should and does clear REG_IRQWAKEUP.
IRQENB_HW_PEN bit is set in irqclr so that all interrupts get cleared
later so let IRQENB_HW_PEN be cleared by that.

Without this patch wakeup events from TSC_ADC do not work because pending
interrupts in TSC_ADC were causing HW_PEN interrupt, needed for wake from
suspend modes, to get disabled immediately by IRQ handler after being
enabled and preventing wake from happening.

Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/touchscreen/ti_am335x_tsc.c

index 191a1b87895f69eec25f67369fb110a0cb5b295e..a21a07c3ab6d73d33fd4653f2c99e7766e00f3ce 100644 (file)
@@ -273,8 +273,6 @@ static irqreturn_t titsc_irq(int irq, void *dev)
        status = titsc_readl(ts_dev, REG_RAWIRQSTATUS);
        if (status & IRQENB_HW_PEN) {
                ts_dev->pen_down = true;
-               titsc_writel(ts_dev, REG_IRQWAKEUP, 0x00);
-               titsc_writel(ts_dev, REG_IRQCLR, IRQENB_HW_PEN);
                irqclr |= IRQENB_HW_PEN;
        }