summaryrefslogtreecommitdiff
path: root/drivers/input
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2011-03-18 14:10:23 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:38:38 -0800
commitc4820da1bc470f498fdecc9947226bb7521f7b27 (patch)
tree7867d4a840e433df10e3e896b8ca0182a1b9cb67 /drivers/input
parentff3b4409a98d70987f31bedcbb1d24982f230e29 (diff)
input: gpio_matrix: send input_sync after reporting keys
Signed-off-by: jeffbrown@android.com Change-Id: I9bd2437503b48bf37f4d93505ccd2806e4aab977
Diffstat (limited to 'drivers/input')
-rw-r--r--drivers/input/misc/gpio_matrix.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/input/misc/gpio_matrix.c b/drivers/input/misc/gpio_matrix.c
index 5679f523603e..eaa9e89d473a 100644
--- a/drivers/input/misc/gpio_matrix.c
+++ b/drivers/input/misc/gpio_matrix.c
@@ -130,6 +130,14 @@ static void report_key(struct gpio_kp *kp, int key_index, int out, int in)
}
}
+static void report_sync(struct gpio_kp *kp)
+{
+ int i;
+
+ for (i = 0; i < kp->input_devs->count; i++)
+ input_sync(kp->input_devs->dev[i]);
+}
+
static enum hrtimer_restart gpio_keypad_timer_func(struct hrtimer *timer)
{
int out, in;
@@ -191,6 +199,7 @@ static enum hrtimer_restart gpio_keypad_timer_func(struct hrtimer *timer)
for (out = 0; out < mi->noutputs; out++)
for (in = 0; in < mi->ninputs; in++, key_index++)
report_key(kp, key_index, out, in);
+ report_sync(kp);
}
if (!kp->use_irq || kp->some_keys_pressed) {
hrtimer_start(timer, mi->poll_time, HRTIMER_MODE_REL);