aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArve Hjønnevåg <arve@android.com>2008-10-17 15:28:08 -0700
committerDenis 'GNUtoo' Carikli <GNUtoo@no-log.org>2013-03-18 22:51:54 +0100
commitd6ed86683c92fc2dd96a014b9f0721f085caae8a (patch)
treebdcb7d1053db17abb9deca5080c7d07fd035cc2e
parent2e91e63414c8e60c042eb2b726a334352ef562e3 (diff)
downloadkernel_goldelico_gta04-d6ed86683c92fc2dd96a014b9f0721f085caae8a.zip
kernel_goldelico_gta04-d6ed86683c92fc2dd96a014b9f0721f085caae8a.tar.gz
kernel_goldelico_gta04-d6ed86683c92fc2dd96a014b9f0721f085caae8a.tar.bz2
Input: Use monotonic time for event time stamps.
Since wall time can jump backwards, it cannot be used to determine if one event occured before another or for how long a key was pressed. Signed-off-by: Arve Hjønnevåg <arve@android.com> Signed-off-by: Pankaj <pankaj.bharadiya@ti.com> Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org>
-rw-r--r--drivers/input/evdev.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c
index 23425d7..5f2dcdb 100644
--- a/drivers/input/evdev.c
+++ b/drivers/input/evdev.c
@@ -94,10 +94,12 @@ static void evdev_pass_values(struct evdev_client *client,
struct evdev *evdev = client->evdev;
const struct input_value *v;
struct input_event event;
+ struct timespec ts;
bool wakeup = false;
- event.time = ktime_to_timeval(client->clkid == CLOCK_MONOTONIC ?
- mono : real);
+ ktime_get_ts(&ts);
+ event.time.tv_sec = ts.tv_sec;
+ event.time.tv_usec = ts.tv_nsec / NSEC_PER_USEC;
/* Interrupts are disabled, just acquire the lock. */
spin_lock(&client->buffer_lock);