input: gpio_matrix: send input_sync after reporting keys
authorJeff Brown <jeffbrown@google.com>
Fri, 18 Mar 2011 21:10:23 +0000 (14:10 -0700)
committermgross <mark.gross@intel.com>
Wed, 9 Nov 2011 20:08:41 +0000 (12:08 -0800)
Signed-off-by: jeffbrown@android.com
Change-Id: I9bd2437503b48bf37f4d93505ccd2806e4aab977

drivers/input/misc/gpio_matrix.c

index 5679f52..eaa9e89 100644 (file)
@@ -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);