summaryrefslogtreecommitdiffstats
path: root/meta/recipes-graphics/xorg-driver/xf86-input-synaptics/64bit_time_t_support.patch
blob: 4bb7fb3e2349160be0ad299c63e26b4692dcc2c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
This patch avoids using time field of input_event structure which is not available
on 32bit arches supporting 64bit time_t structs, Patch makes it compatible with new
and keeps old input.h implementation functional as well.

See https://sourceware.org/glibc/wiki/Y2038ProofnessDesign

Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>

--- a/src/eventcomm.c
+++ b/src/eventcomm.c
@@ -575,10 +575,12 @@ SynapticsReadEvent(InputInfoPtr pInfo, s
         ev->type = EV_SYN;
         ev->code = SYN_REPORT;
         ev->value = 0;
-        ev->time = last_event_time;
-    } else if (ev->type == EV_SYN)
-        last_event_time = ev->time;
-
+	ev->input_event_sec = last_event_time.tv_sec;
+	ev->input_event_usec = last_event_time.tv_usec;
+    } else if (ev->type == EV_SYN) {
+        last_event_time.tv_sec = ev->input_event_sec;
+        last_event_time.tv_usec = ev->input_event_usec;
+    }
     return TRUE;
 }
 
@@ -725,7 +727,7 @@ EventReadHwState(InputInfoPtr pInfo,
             case SYN_REPORT:
                 hw->numFingers = count_fingers(pInfo, comm);
                 if (proto_data->have_monotonic_clock)
-                    hw->millis = 1000 * ev.time.tv_sec + ev.time.tv_usec / 1000;
+                    hw->millis = 1000 * ev.input_event_sec + ev.input_event_usec / 1000;
                 else
                     hw->millis = GetTimeInMillis();
                 SynapticsCopyHwState(hwRet, hw);
--- a/src/eventcomm.h
+++ b/src/eventcomm.h
@@ -34,6 +34,11 @@
 #include <xf86Xinput.h>
 #include "synproto.h"
 
+#ifndef input_event_sec
+#define input_event_sec time.tv_sec
+#define input_event_usec time.tv_usec
+#endif
+
 /* for auto-dev: */
 #define DEV_INPUT_EVENT "/dev/input"
 #define EVENT_DEV_NAME "event"