From: Anshul Garg Date: Thu, 8 Jan 2015 21:41:24 +0000 (-0800) Subject: Input: small tweak to autorepeat handling X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=5ab17145708e6ad4582b0372fb3a171be3379293;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git Input: small tweak to autorepeat handling If a device does not support autorepeat or does not emit any key events we should not be scanning all events in a packet to decide if we should start or stop autorepeat function. Signed-off-by: Anshul Garg Signed-off-by: Dmitry Torokhov --- diff --git a/drivers/input/input.c b/drivers/input/input.c index 213e3a1903ee..26199abee36c 100644 --- a/drivers/input/input.c +++ b/drivers/input/input.c @@ -152,12 +152,14 @@ static void input_pass_values(struct input_dev *dev, add_input_randomness(vals->type, vals->code, vals->value); /* trigger auto repeat for key events */ - for (v = vals; v != vals + count; v++) { - if (v->type == EV_KEY && v->value != 2) { - if (v->value) - input_start_autorepeat(dev, v->code); - else - input_stop_autorepeat(dev); + if (test_bit(EV_REP, dev->evbit) && test_bit(EV_KEY, dev->evbit)) { + for (v = vals; v != vals + count; v++) { + if (v->type == EV_KEY && v->value != 2) { + if (v->value) + input_start_autorepeat(dev, v->code); + else + input_stop_autorepeat(dev); + } } } }