Inter-revision diff: patch 2

Comparing v1 (message) to v5 (message)

--- v1
+++ v5
@@ -8,34 +8,53 @@
 struct input_event will be changed in a different patch.
 
 Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com>
+Reviewed-by: Arnd Bergmann <arnd@arndb.de>
+Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
 ---
- drivers/input/evdev.c | 10 ++++++++--
- 1 file changed, 8 insertions(+), 2 deletions(-)
+ drivers/input/evdev.c | 37 +++++++++++++++++++++++--------------
+ 1 file changed, 23 insertions(+), 14 deletions(-)
 
 diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c
-index e9ae3d5..bda2b61 100644
+index 0193dd4f0452..3171c4882d80 100644
 --- a/drivers/input/evdev.c
 +++ b/drivers/input/evdev.c
-@@ -157,6 +157,7 @@ static void __evdev_queue_syn_dropped(struct evdev_client *client)
+@@ -156,15 +156,22 @@ static void __evdev_flush_queue(struct evdev_client *client, unsigned int type)
+ static void __evdev_queue_syn_dropped(struct evdev_client *client)
  {
  	struct input_event ev;
- 	ktime_t time;
+-	ktime_t time;
 +	struct timespec64 ts;
  
- 	time = client->clk_type == EV_CLK_REAL ?
- 			ktime_get_real() :
-@@ -164,7 +165,9 @@ static void __evdev_queue_syn_dropped(struct evdev_client *client)
- 				ktime_get() :
- 				ktime_get_boottime();
+-	time = client->clk_type == EV_CLK_REAL ?
+-			ktime_get_real() :
+-			client->clk_type == EV_CLK_MONO ?
+-				ktime_get() :
+-				ktime_get_boottime();
++	switch (client->clk_type) {
++	case EV_CLK_REAL:
++		ktime_get_real_ts64(&ts);
++		break;
++	case EV_CLK_MONO:
++		ktime_get_ts64(&ts);
++		break;
++	case EV_CLK_BOOT:
++		get_monotonic_boottime64(&ts);
++		break;
++	}
  
 -	ev.time = ktime_to_timeval(time);
-+	ts = ktime_to_timespec64(time);
 +	ev.time.tv_sec = ts.tv_sec;
 +	ev.time.tv_usec = ts.tv_nsec / NSEC_PER_USEC;
  	ev.type = EV_SYN;
  	ev.code = SYN_DROPPED;
  	ev.value = 0;
-@@ -262,12 +265,15 @@ static void evdev_pass_values(struct evdev_client *client,
+@@ -257,17 +264,20 @@ static void __pass_event(struct evdev_client *client,
+ 
+ static void evdev_pass_values(struct evdev_client *client,
+ 			const struct input_value *vals, unsigned int count,
+-			ktime_t *ev_time)
++			struct timespec64 *ev_time)
+ {
  	struct evdev *evdev = client->evdev;
  	const struct input_value *v;
  	struct input_event event;
@@ -46,11 +65,28 @@
  		return;
  
 -	event.time = ktime_to_timeval(ev_time[client->clk_type]);
-+	ts = ktime_to_timespec64(ev_time[client->clk_type]);
++	ts = ev_time[client->clk_type];
 +	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);
+@@ -304,12 +314,11 @@ static void evdev_events(struct input_handle *handle,
+ {
+ 	struct evdev *evdev = handle->private;
+ 	struct evdev_client *client;
+-	ktime_t ev_time[EV_CLK_MAX];
++	struct timespec64 ev_time[EV_CLK_MAX];
+ 
+-	ev_time[EV_CLK_MONO] = ktime_get();
+-	ev_time[EV_CLK_REAL] = ktime_mono_to_real(ev_time[EV_CLK_MONO]);
+-	ev_time[EV_CLK_BOOT] = ktime_mono_to_any(ev_time[EV_CLK_MONO],
+-						 TK_OFFS_BOOT);
++	ktime_get_ts64(&ev_time[EV_CLK_MONO]);
++	ktime_get_real_ts64(&ev_time[EV_CLK_REAL]);
++	get_monotonic_boottime64(&ev_time[EV_CLK_BOOT]);
+ 
+ 	rcu_read_lock();
+ 
 -- 
-2.7.4
+2.14.1
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help