summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorVasily Khoruzhick <anarsoul@gmail.com>2012-10-29 23:45:09 -0700
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2012-10-30 00:10:49 -0700
commit904adede088f2a6976e417d1d5cf72c9fe686814 (patch)
tree0d9ad8997d73d8c1e2690966ccd93d182ed64abd /drivers
parentb216e12d062d060f2c7b1a49b4b6a6a442cae79c (diff)
downloadlinux-904adede088f2a6976e417d1d5cf72c9fe686814.tar.gz
linux-904adede088f2a6976e417d1d5cf72c9fe686814.tar.bz2
linux-904adede088f2a6976e417d1d5cf72c9fe686814.zip
Input: pxa27x_keypad - clear pending interrupts on keypad config
Bootloader can leave interrupt bit pending, and it confuses driver. Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com> Acked-by: Robert Jarzmik <robert.jarzmik@free.fr> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/input/keyboard/pxa27x_keypad.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/input/keyboard/pxa27x_keypad.c b/drivers/input/keyboard/pxa27x_keypad.c
index 803ff6fe021e..cad9d5dd5973 100644
--- a/drivers/input/keyboard/pxa27x_keypad.c
+++ b/drivers/input/keyboard/pxa27x_keypad.c
@@ -368,6 +368,9 @@ static void pxa27x_keypad_config(struct pxa27x_keypad *keypad)
unsigned int mask = 0, direct_key_num = 0;
unsigned long kpc = 0;
+ /* clear pending interrupt bit */
+ keypad_readl(KPC);
+
/* enable matrix keys with automatic scan */
if (pdata->matrix_key_rows && pdata->matrix_key_cols) {
kpc |= KPC_ASACT | KPC_MIE | KPC_ME | KPC_MS_ALL;