diff --git a/[refs] b/[refs] index 686e40a659d1..9db5f8a27e88 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b0ee0d3eb31a163c958f2960906c44bcdfdc607b +refs/heads/master: e7b5c1ef4d87426da0b689a0a4fa67edda02ea5c diff --git a/trunk/drivers/input/input.c b/trunk/drivers/input/input.c index 1730d7331a5d..46e9ce195064 100644 --- a/trunk/drivers/input/input.c +++ b/trunk/drivers/input/input.c @@ -132,6 +132,11 @@ static void input_start_autorepeat(struct input_dev *dev, int code) } } +static void input_stop_autorepeat(struct input_dev *dev) +{ + del_timer(&dev->timer); +} + #define INPUT_IGNORE_EVENT 0 #define INPUT_PASS_TO_HANDLERS 1 #define INPUT_PASS_TO_DEVICE 2 @@ -167,6 +172,8 @@ static void input_handle_event(struct input_dev *dev, __change_bit(code, dev->key); if (value) input_start_autorepeat(dev, code); + else + input_stop_autorepeat(dev); } disposition = INPUT_PASS_TO_HANDLERS;