summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVikram Pandita <vikram.pandita@ti.com>2009-12-10 14:19:04 -0600
committerSantosh Shilimkar <santosh.shilimkar@ti.com>2009-12-18 01:59:39 +0530
commit5a99bfc9ce6b4042c6b86ce75c35fe4ce9a5359f (patch)
treef668a4b1afa0265da5d06d88a5547730ce62481f
parent04c5228f5955c3e70aca60681e86a3db73261ec7 (diff)
omap: keypad: defer status clearingti-2.6.31-omap4-L24.2-p1
defer status register clearing to the tasklet that way continuous keypress can be handled. MISS_EVENT was not getting handled otherwise Signed-off-by: Vikram Pandita <vikram.pandita@ti.com> Signed-off-by: Shilimkar Santosh <santosh.shilimkar@ti.com>
-rw-r--r--drivers/input/keyboard/omap-keypad.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/input/keyboard/omap-keypad.c b/drivers/input/keyboard/omap-keypad.c
index b7718a938368..e18a0079f65e 100644
--- a/drivers/input/keyboard/omap-keypad.c
+++ b/drivers/input/keyboard/omap-keypad.c
@@ -148,9 +148,6 @@ static irqreturn_t omap_kp_interrupt(int irq, void *dev_id)
/* disable keyboard interrupt and schedule for handling */
omap_writel(OMAP4_KBD_IRQDISABLE, OMAP4_KBDOCP_BASE +
OMAP4_KBD_IRQENABLE);
-
- omap_writel(omap_readl(OMAP4_KBDOCP_BASE + OMAP4_KBD_IRQSTATUS),
- OMAP4_KBDOCP_BASE + OMAP4_KBD_IRQSTATUS);
} else
/* disable keyboard interrupt and schedule for handling */
omap_writew(1, OMAP1_MPUIO_BASE + OMAP_MPUIO_KBD_MASKIT);
@@ -300,6 +297,9 @@ static void omap_kp_tasklet(unsigned long data)
}
}
enable_irq(irq);
+ /* now clear any pending interrupts */
+ omap_writel(omap_readl(OMAP4_KBDOCP_BASE + OMAP4_KBD_IRQSTATUS),
+ OMAP4_KBDOCP_BASE + OMAP4_KBD_IRQSTATUS);
}
static ssize_t omap_kp_enable_show(struct device *dev,