mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-10 07:00:48 +00:00
Input: reset device timestamp on sync
We need to reset input device's timestamp on input_sync(), otherwise drivers not using input_set_timestamp() will end up with a stale timestamp after their clients consume first input event. Fixes: 3b51c44bd693 ("Input: allow drivers specify timestamp for input events") Reported-by: John Stultz <john.stultz@linaro.org> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
parent
4b6253fa73
commit
4370b231d1
@ -397,6 +397,13 @@ static void input_handle_event(struct input_dev *dev,
|
|||||||
if (dev->num_vals >= 2)
|
if (dev->num_vals >= 2)
|
||||||
input_pass_values(dev, dev->vals, dev->num_vals);
|
input_pass_values(dev, dev->vals, dev->num_vals);
|
||||||
dev->num_vals = 0;
|
dev->num_vals = 0;
|
||||||
|
/*
|
||||||
|
* Reset the timestamp on flush so we won't end up
|
||||||
|
* with a stale one. Note we only need to reset the
|
||||||
|
* monolithic one as we use its presence when deciding
|
||||||
|
* whether to generate a synthetic timestamp.
|
||||||
|
*/
|
||||||
|
dev->timestamp[INPUT_CLK_MONO] = ktime_set(0, 0);
|
||||||
} else if (dev->num_vals >= dev->max_vals - 2) {
|
} else if (dev->num_vals >= dev->max_vals - 2) {
|
||||||
dev->vals[dev->num_vals++] = input_value_sync;
|
dev->vals[dev->num_vals++] = input_value_sync;
|
||||||
input_pass_values(dev, dev->vals, dev->num_vals);
|
input_pass_values(dev, dev->vals, dev->num_vals);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user