Merge tag 'mfd-3.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd...
[pandora-kernel.git] / drivers / input / touchscreen / ti_am335x_tsc.c
index 1bceb25..e1c5300 100644 (file)
@@ -308,10 +308,18 @@ static irqreturn_t titsc_irq(int irq, void *dev)
                irqclr |= IRQENB_PENUP;
        }
 
-       titsc_writel(ts_dev, REG_IRQSTATUS, irqclr);
+       if (status & IRQENB_HW_PEN) {
 
-       am335x_tsc_se_update(ts_dev->mfd_tscadc);
-       return IRQ_HANDLED;
+               titsc_writel(ts_dev, REG_IRQWAKEUP, 0x00);
+               titsc_writel(ts_dev, REG_IRQCLR, IRQENB_HW_PEN);
+       }
+
+       if (irqclr) {
+               titsc_writel(ts_dev, REG_IRQSTATUS, irqclr);
+               am335x_tsc_se_update(ts_dev->mfd_tscadc);
+               return IRQ_HANDLED;
+       }
+       return IRQ_NONE;
 }
 
 static int titsc_parse_dt(struct platform_device *pdev,
@@ -437,7 +445,6 @@ static int titsc_remove(struct platform_device *pdev)
 
        input_unregister_device(ts_dev->input);
 
-       platform_set_drvdata(pdev, NULL);
        kfree(ts_dev);
        return 0;
 }