From 5455055660700be18eb8800e56e2423031ed4c76 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 30 Nov 2019 19:59:29 -0800
Subject: [PATCH] Fix build on 32bit arches with 64bit time_t

time element is deprecated on new input_event structure in kernel's
input.h [1]

[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=152194fe9c3f

Upstream-Status: Submitted [https://github.com/libts/tslib/pull/162]

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 plugins/input-raw.c | 59 +++++++++++++++++++++++++++-------------
 tools/ts_uinput.c   | 66 ++++++++++++++++++++++++++++++---------------
 2 files changed, 85 insertions(+), 40 deletions(-)

diff --git a/plugins/input-raw.c b/plugins/input-raw.c
index 64f0156..f030836 100644
--- a/plugins/input-raw.c
+++ b/plugins/input-raw.c
@@ -40,6 +40,11 @@
 # include <linux/input.h>
 #endif
 
+#ifndef input_event_sec
+#define input_event_sec time.tv_sec
+#define input_event_usec time.tv_usec
+#endif
+
 #ifndef EV_SYN /* 2.4 kernel headers */
 # define EV_SYN 0x00
 #endif
@@ -384,7 +389,8 @@ static int ts_input_read(struct tslib_module_info *inf,
 						samp->y = i->current_y;
 						samp->pressure = i->current_p;
 					}
-					samp->tv = ev.time;
+					samp->tv.tv_sec = ev.input_event_sec;
+					samp->tv.tv_usec = ev.input_event_usec;
 			#ifdef DEBUG
 				fprintf(stderr,
 					"RAW---------------------> %d %d %d %ld.%ld\n",
@@ -519,7 +525,8 @@ static int ts_input_read(struct tslib_module_info *inf,
 					samp->pressure = i->current_p = ev.value;
 					break;
 				}
-				samp->tv = ev.time;
+				samp->tv.tv_sec = ev.input_event_sec;
+				samp->tv.tv_usec = ev.input_event_usec;
 	#ifdef DEBUG
 				fprintf(stderr,
 					"RAW---------------------------> %d %d %d\n",
@@ -536,7 +543,8 @@ static int ts_input_read(struct tslib_module_info *inf,
 						samp->x = 0;
 						samp->y = 0;
 						samp->pressure = 0;
-						samp->tv = ev.time;
+						samp->tv.tv_sec = ev.input_event_sec;
+						samp->tv.tv_usec = ev.input_event_usec;
 						samp++;
 						total++;
 					}
@@ -651,7 +659,8 @@ static int ts_input_read_mt(struct tslib_module_info *inf,
 				switch (i->ev[it].code) {
 				case BTN_TOUCH:
 					i->buf[total][i->slot].pen_down = i->ev[it].value;
-					i->buf[total][i->slot].tv = i->ev[it].time;
+					i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec;
+					i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec;
 					i->buf[total][i->slot].valid |= TSLIB_MT_VALID;
 					if (i->ev[it].value == 0)
 						pen_up = 1;
@@ -751,7 +760,8 @@ static int ts_input_read_mt(struct tslib_module_info *inf,
 					// fall through
 				case ABS_MT_POSITION_X:
 					i->buf[total][i->slot].x = i->ev[it].value;
-					i->buf[total][i->slot].tv = i->ev[it].time;
+					i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec;
+					i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec;
 					i->buf[total][i->slot].valid |= TSLIB_MT_VALID;
 					break;
 				case ABS_Y:
@@ -760,7 +770,8 @@ static int ts_input_read_mt(struct tslib_module_info *inf,
 					// fall through
 				case ABS_MT_POSITION_Y:
 					i->buf[total][i->slot].y = i->ev[it].value;
-					i->buf[total][i->slot].tv = i->ev[it].time;
+					i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec;
+					i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec;
 					i->buf[total][i->slot].valid |= TSLIB_MT_VALID;
 					break;
 				case ABS_PRESSURE:
@@ -769,12 +780,14 @@ static int ts_input_read_mt(struct tslib_module_info *inf,
 					// fall through
 				case ABS_MT_PRESSURE:
 					i->buf[total][i->slot].pressure = i->ev[it].value;
-					i->buf[total][i->slot].tv = i->ev[it].time;
+					i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec;
+					i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec;
 					i->buf[total][i->slot].valid |= TSLIB_MT_VALID;
 					break;
 				case ABS_MT_TOOL_X:
 					i->buf[total][i->slot].tool_x = i->ev[it].value;
-					i->buf[total][i->slot].tv = i->ev[it].time;
+					i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec;
+					i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec;
 					i->buf[total][i->slot].valid |= TSLIB_MT_VALID;
 					/* for future use
 					 * i->buf[total][i->slot].valid |= TSLIB_MT_VALID_TOOL;
@@ -782,7 +795,8 @@ static int ts_input_read_mt(struct tslib_module_info *inf,
 					break;
 				case ABS_MT_TOOL_Y:
 					i->buf[total][i->slot].tool_y = i->ev[it].value;
-					i->buf[total][i->slot].tv = i->ev[it].time;
+					i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec;
+					i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec;
 					i->buf[total][i->slot].valid |= TSLIB_MT_VALID;
 					/* for future use
 					 * i->buf[total][i->slot].valid |= TSLIB_MT_VALID_TOOL;
@@ -790,7 +804,8 @@ static int ts_input_read_mt(struct tslib_module_info *inf,
 					break;
 				case ABS_MT_TOOL_TYPE:
 					i->buf[total][i->slot].tool_type = i->ev[it].value;
-					i->buf[total][i->slot].tv = i->ev[it].time;
+					i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec;
+					i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec;
 					i->buf[total][i->slot].valid |= TSLIB_MT_VALID;
 					/* for future use
 					 * i->buf[total][i->slot].valid |= TSLIB_MT_VALID_TOOL;
@@ -798,12 +813,14 @@ static int ts_input_read_mt(struct tslib_module_info *inf,
 					break;
 				case ABS_MT_ORIENTATION:
 					i->buf[total][i->slot].orientation = i->ev[it].value;
-					i->buf[total][i->slot].tv = i->ev[it].time;
+					i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec;
+					i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec;
 					i->buf[total][i->slot].valid |= TSLIB_MT_VALID;
 					break;
 				case ABS_MT_DISTANCE:
 					i->buf[total][i->slot].distance = i->ev[it].value;
-					i->buf[total][i->slot].tv = i->ev[it].time;
+					i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec;
+					i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec;
 					i->buf[total][i->slot].valid |= TSLIB_MT_VALID;
 
 					if (i->special_device == EGALAX_VERSION_210) {
@@ -816,34 +833,40 @@ static int ts_input_read_mt(struct tslib_module_info *inf,
 					break;
 				case ABS_MT_BLOB_ID:
 					i->buf[total][i->slot].blob_id = i->ev[it].value;
-					i->buf[total][i->slot].tv = i->ev[it].time;
+					i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec;
+					i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec;
 					i->buf[total][i->slot].valid |= TSLIB_MT_VALID;
 					break;
 				case ABS_MT_TOUCH_MAJOR:
 					i->buf[total][i->slot].touch_major = i->ev[it].value;
-					i->buf[total][i->slot].tv = i->ev[it].time;
+					i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec;
+					i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec;
 					i->buf[total][i->slot].valid |= TSLIB_MT_VALID;
 					if (i->ev[it].value == 0)
 						i->buf[total][i->slot].pressure = 0;
 					break;
 				case ABS_MT_WIDTH_MAJOR:
 					i->buf[total][i->slot].width_major = i->ev[it].value;
-					i->buf[total][i->slot].tv = i->ev[it].time;
+					i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec;
+					i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec;
 					i->buf[total][i->slot].valid |= TSLIB_MT_VALID;
 					break;
 				case ABS_MT_TOUCH_MINOR:
 					i->buf[total][i->slot].touch_minor = i->ev[it].value;
-					i->buf[total][i->slot].tv = i->ev[it].time;
+					i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec;
+					i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec;
 					i->buf[total][i->slot].valid |= TSLIB_MT_VALID;
 					break;
 				case ABS_MT_WIDTH_MINOR:
 					i->buf[total][i->slot].width_minor = i->ev[it].value;
-					i->buf[total][i->slot].tv = i->ev[it].time;
+					i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec;
+					i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec;
 					i->buf[total][i->slot].valid |= TSLIB_MT_VALID;
 					break;
 				case ABS_MT_TRACKING_ID:
 					i->buf[total][i->slot].tracking_id = i->ev[it].value;
-					i->buf[total][i->slot].tv = i->ev[it].time;
+					i->buf[total][i->slot].tv.tv_sec = i->ev[it].input_event_sec;
+					i->buf[total][i->slot].tv.tv_usec = i->ev[it].input_event_usec;
 					i->buf[total][i->slot].valid |= TSLIB_MT_VALID;
 					if (i->ev[it].value == -1)
 						i->buf[total][i->slot].pressure = 0;
diff --git a/tools/ts_uinput.c b/tools/ts_uinput.c
index 6ca4c3d..1832a07 100644
--- a/tools/ts_uinput.c
+++ b/tools/ts_uinput.c
@@ -170,14 +170,16 @@ static int send_touch_events(struct data_t *data, struct ts_sample_mt **s,
 				continue;
 
 			if (s[j][i].pen_down == 1) {
-				data->ev[c].time = s[j][i].tv;
+				data->ev[c].input_event_sec = s[j][i].tv.tv_sec;
+				data->ev[c].input_event_usec = s[j][i].tv.tv_usec;
 				data->ev[c].type = EV_KEY;
 				data->ev[c].code = BTN_TOUCH;
 				data->ev[c].value = s[j][i].pen_down;
 				c++;
 			}
 
-			data->ev[c].time = s[j][i].tv;
+			data->ev[c].input_event_sec = s[j][i].tv.tv_sec;
+			data->ev[c].input_event_usec = s[j][i].tv.tv_usec;
 			data->ev[c].type = EV_ABS;
 			data->ev[c].code = ABS_MT_SLOT;
 			data->ev[c].value = s[j][i].slot;
@@ -190,111 +192,129 @@ static int send_touch_events(struct data_t *data, struct ts_sample_mt **s,
 			 * we should use slot 1 and so on.
 			 */
 			if (i == 0) {
-				data->ev[c].time = s[j][i].tv;
+				data->ev[c].input_event_sec = s[j][i].tv.tv_sec;
+				data->ev[c].input_event_usec = s[j][i].tv.tv_usec;
 				data->ev[c].type = EV_ABS;
 				data->ev[c].code = ABS_X;
 				data->ev[c].value = s[j][i].x;
 				c++;
 
-				data->ev[c].time = s[j][i].tv;
+				data->ev[c].input_event_sec = s[j][i].tv.tv_sec;
+				data->ev[c].input_event_usec = s[j][i].tv.tv_usec;
 				data->ev[c].type = EV_ABS;
 				data->ev[c].code = ABS_Y;
 				data->ev[c].value = s[j][i].y;
 				c++;
 
-				data->ev[c].time = s[j][i].tv;
+				data->ev[c].input_event_sec = s[j][i].tv.tv_sec;
+				data->ev[c].input_event_usec = s[j][i].tv.tv_usec;
 				data->ev[c].type = EV_ABS;
 				data->ev[c].code = ABS_PRESSURE;
 				data->ev[c].value = s[j][i].pressure;
 				c++;
 			}
 
-			data->ev[c].time = s[j][i].tv;
+			data->ev[c].input_event_sec = s[j][i].tv.tv_sec;
+			data->ev[c].input_event_usec = s[j][i].tv.tv_usec;
 			data->ev[c].type = EV_ABS;
 			data->ev[c].code = ABS_MT_POSITION_X;
 			data->ev[c].value = s[j][i].x;
 			c++;
 
-			data->ev[c].time = s[j][i].tv;
+			data->ev[c].input_event_sec = s[j][i].tv.tv_sec;
+			data->ev[c].input_event_usec = s[j][i].tv.tv_usec;
 			data->ev[c].type = EV_ABS;
 			data->ev[c].code = ABS_MT_POSITION_Y;
 			data->ev[c].value = s[j][i].y;
 			c++;
 
-			data->ev[c].time = s[j][i].tv;
+			data->ev[c].input_event_sec = s[j][i].tv.tv_sec;
+			data->ev[c].input_event_usec = s[j][i].tv.tv_usec;
 			data->ev[c].type = EV_ABS;
 			data->ev[c].code = ABS_MT_PRESSURE;
 			data->ev[c].value = s[j][i].pressure;
 			c++;
 
-			data->ev[c].time = s[j][i].tv;
+			data->ev[c].input_event_sec = s[j][i].tv.tv_sec;
+			data->ev[c].input_event_usec = s[j][i].tv.tv_usec;
 			data->ev[c].type = EV_ABS;
 			data->ev[c].code = ABS_MT_TOUCH_MAJOR;
 			data->ev[c].value = s[j][i].touch_major;
 			c++;
 
-			data->ev[c].time = s[j][i].tv;
+			data->ev[c].input_event_sec = s[j][i].tv.tv_sec;
+			data->ev[c].input_event_usec = s[j][i].tv.tv_usec;
 			data->ev[c].type = EV_ABS;
 			data->ev[c].code = ABS_MT_WIDTH_MAJOR;
 			data->ev[c].value = s[j][i].width_major;
 			c++;
 
-			data->ev[c].time = s[j][i].tv;
+			data->ev[c].input_event_sec = s[j][i].tv.tv_sec;
+			data->ev[c].input_event_usec = s[j][i].tv.tv_usec;
 			data->ev[c].type = EV_ABS;
 			data->ev[c].code = ABS_MT_TOUCH_MINOR;
 			data->ev[c].value = s[j][i].touch_minor;
 			c++;
 
-			data->ev[c].time = s[j][i].tv;
+			data->ev[c].input_event_sec = s[j][i].tv.tv_sec;
+			data->ev[c].input_event_usec = s[j][i].tv.tv_usec;
 			data->ev[c].type = EV_ABS;
 			data->ev[c].code = ABS_MT_WIDTH_MINOR;
 			data->ev[c].value = s[j][i].width_minor;
 			c++;
 
-			data->ev[c].time = s[j][i].tv;
+			data->ev[c].input_event_sec = s[j][i].tv.tv_sec;
+			data->ev[c].input_event_usec = s[j][i].tv.tv_usec;
 			data->ev[c].type = EV_ABS;
 			data->ev[c].code = ABS_MT_TOOL_TYPE;
 			data->ev[c].value = s[j][i].tool_type;
 			c++;
 
-			data->ev[c].time = s[j][i].tv;
+			data->ev[c].input_event_sec = s[j][i].tv.tv_sec;
+			data->ev[c].input_event_usec = s[j][i].tv.tv_usec;
 			data->ev[c].type = EV_ABS;
 			data->ev[c].code = ABS_MT_TOOL_X;
 			data->ev[c].value = s[j][i].tool_x;
 			c++;
 
-			data->ev[c].time = s[j][i].tv;
+			data->ev[c].input_event_sec = s[j][i].tv.tv_sec;
+			data->ev[c].input_event_usec = s[j][i].tv.tv_usec;
 			data->ev[c].type = EV_ABS;
 			data->ev[c].code = ABS_MT_TOOL_Y;
 			data->ev[c].value = s[j][i].tool_y;
 			c++;
 
-			data->ev[c].time = s[j][i].tv;
+			data->ev[c].input_event_sec = s[j][i].tv.tv_sec;
+			data->ev[c].input_event_usec = s[j][i].tv.tv_usec;
 			data->ev[c].type = EV_ABS;
 			data->ev[c].code = ABS_MT_ORIENTATION;
 			data->ev[c].value = s[j][i].orientation;
 			c++;
 
-			data->ev[c].time = s[j][i].tv;
+			data->ev[c].input_event_sec = s[j][i].tv.tv_sec;
+			data->ev[c].input_event_usec = s[j][i].tv.tv_usec;
 			data->ev[c].type = EV_ABS;
 			data->ev[c].code = ABS_MT_DISTANCE;
 			data->ev[c].value = s[j][i].distance;
 			c++;
 
-			data->ev[c].time = s[j][i].tv;
+			data->ev[c].input_event_sec = s[j][i].tv.tv_sec;
+			data->ev[c].input_event_usec = s[j][i].tv.tv_usec;
 			data->ev[c].type = EV_ABS;
 			data->ev[c].code = ABS_MT_BLOB_ID;
 			data->ev[c].value = s[j][i].blob_id;
 			c++;
 
-			data->ev[c].time = s[j][i].tv;
+			data->ev[c].input_event_sec = s[j][i].tv.tv_sec;
+			data->ev[c].input_event_usec = s[j][i].tv.tv_usec;
 			data->ev[c].type = EV_ABS;
 			data->ev[c].code = ABS_MT_TRACKING_ID;
 			data->ev[c].value = s[j][i].tracking_id;
 			c++;
 
 			if (data->mt_type_a == 1) {
-				data->ev[c].time = s[j][i].tv;
+				data->ev[c].input_event_sec = s[j][i].tv.tv_sec;
+				data->ev[c].input_event_usec = s[j][i].tv.tv_usec;
 				data->ev[c].type = EV_SYN;
 				data->ev[c].code = SYN_MT_REPORT;
 				data->ev[c].value = 0;
@@ -302,7 +322,8 @@ static int send_touch_events(struct data_t *data, struct ts_sample_mt **s,
 			}
 
 			if (s[j][i].pen_down == 0) {
-				data->ev[c].time = s[j][i].tv;
+				data->ev[c].input_event_sec = s[j][i].tv.tv_sec;
+				data->ev[c].input_event_usec = s[j][i].tv.tv_usec;
 				data->ev[c].type = EV_KEY;
 				data->ev[c].code = BTN_TOUCH;
 				data->ev[c].value = s[j][i].pen_down;
@@ -312,7 +333,8 @@ static int send_touch_events(struct data_t *data, struct ts_sample_mt **s,
 		}
 
 		if (c > 0) {
-			data->ev[c].time = s[j][i].tv;
+			data->ev[c].input_event_sec = s[j][i].tv.tv_sec;
+			data->ev[c].input_event_usec = s[j][i].tv.tv_usec;
 			data->ev[c].type = EV_SYN;
 			data->ev[c].code = SYN_REPORT;
 			data->ev[c].value = 0;
-- 
2.24.0

