diff options
author | Vikram Pandita <vikram.pandita@ti.com> | 2009-12-10 14:19:04 -0600 |
---|---|---|
committer | Santosh Shilimkar <santosh.shilimkar@ti.com> | 2009-12-18 01:59:39 +0530 |
commit | 5a99bfc9ce6b4042c6b86ce75c35fe4ce9a5359f (patch) | |
tree | f668a4b1afa0265da5d06d88a5547730ce62481f | |
parent | 04c5228f5955c3e70aca60681e86a3db73261ec7 (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.c | 6 |
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, |