mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-06-04 14:39:54 +00:00
directfb: Fix build for 32bit arches with 64bit time_t
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
@@ -21,7 +21,8 @@ SRC_URI = "http://downloads.yoctoproject.org/mirror/sources/DirectFB-${PV}.tar.g
|
||||
file://use-PTHREAD_MUTEX_RECURSIVE.patch \
|
||||
file://fix-client-gfx_state-initialisation.patch \
|
||||
file://fix-tslib-version-check.patch \
|
||||
"
|
||||
file://0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch \
|
||||
"
|
||||
|
||||
S = "${WORKDIR}/DirectFB-${PV}"
|
||||
|
||||
|
||||
+139
@@ -0,0 +1,139 @@
|
||||
From 0b66557f2e924023b12006b58d8e86149c745aed Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sat, 30 Nov 2019 20:34:33 -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: Pending
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
inputdrivers/linux_input/linux_input.c | 36 ++++++++++++++++++--------
|
||||
1 file changed, 25 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/inputdrivers/linux_input/linux_input.c b/inputdrivers/linux_input/linux_input.c
|
||||
index 7e9a6ad..03deebc 100644
|
||||
--- a/inputdrivers/linux_input/linux_input.c
|
||||
+++ b/inputdrivers/linux_input/linux_input.c
|
||||
@@ -42,6 +42,11 @@ typedef unsigned long kernel_ulong_t;
|
||||
|
||||
#include <linux/input.h>
|
||||
|
||||
+#ifndef input_event_sec
|
||||
+#define input_event_sec time.tv_sec
|
||||
+#define input_event_usec time.tv_usec
|
||||
+#endif
|
||||
+
|
||||
#ifndef KEY_OK
|
||||
/* Linux kernel 2.5.42+ defines additional keys in linux/input.h */
|
||||
#include "input_fake.h"
|
||||
@@ -754,7 +759,8 @@ translate_event( const LinuxInputData *data,
|
||||
DFBInputEvent *devt )
|
||||
{
|
||||
devt->flags = DIEF_TIMESTAMP;
|
||||
- devt->timestamp = levt->time;
|
||||
+ devt->timestamp.tv_sec = levt->input_event_sec;
|
||||
+ devt->timestamp.tv_usec = levt->input_event_usec;
|
||||
|
||||
switch (levt->type) {
|
||||
case EV_KEY:
|
||||
@@ -2139,7 +2145,8 @@ touchpad_translate( struct touchpad_fsm_state *state,
|
||||
int abs, rel;
|
||||
|
||||
devt->flags = DIEF_TIMESTAMP | (dfb_config->linux_input_touch_abs ? DIEF_AXISABS : DIEF_AXISREL);
|
||||
- devt->timestamp = levt->time;
|
||||
+ devt->timestamp.tv_sec = levt->input_event_sec;
|
||||
+ devt->timestamp.tv_usec = levt->input_event_usec;
|
||||
devt->type = DIET_AXISMOTION;
|
||||
|
||||
switch (levt->code) {
|
||||
@@ -2204,7 +2211,7 @@ touchpad_fsm( struct touchpad_fsm_state *state,
|
||||
DFBInputEvent *devt )
|
||||
{
|
||||
struct timeval timeout = { 0, 125000 };
|
||||
-
|
||||
+ struct timeval tval;
|
||||
/* select() timeout? */
|
||||
if (!levt) {
|
||||
/* Check if button release is due. */
|
||||
@@ -2223,6 +2230,8 @@ touchpad_fsm( struct touchpad_fsm_state *state,
|
||||
return 0;
|
||||
}
|
||||
|
||||
+ tval.tv_sec = levt->input_event_sec;
|
||||
+ tval.tv_usec = levt->input_event_usec;
|
||||
/* More or less ignore these events for now */
|
||||
if ((levt->type == EV_SYN && levt->code == SYN_REPORT) ||
|
||||
(levt->type == EV_ABS && levt->code == ABS_PRESSURE) ||
|
||||
@@ -2233,7 +2242,7 @@ touchpad_fsm( struct touchpad_fsm_state *state,
|
||||
|
||||
/* Check if button release is due. */
|
||||
if (state->fsm_state == TOUCHPAD_FSM_DRAG_START &&
|
||||
- timeout_passed( &state->timeout, &levt->time )) {
|
||||
+ timeout_passed( &state->timeout, &tval )) {
|
||||
devt->flags = DIEF_TIMESTAMP;
|
||||
devt->timestamp = state->timeout; /* timeout of levt->time? */
|
||||
devt->type = DIET_BUTTONRELEASE;
|
||||
@@ -2255,7 +2264,8 @@ touchpad_fsm( struct touchpad_fsm_state *state,
|
||||
case TOUCHPAD_FSM_START:
|
||||
if (touchpad_finger_landing( levt )) {
|
||||
state->fsm_state = TOUCHPAD_FSM_MAIN;
|
||||
- state->timeout = levt->time;
|
||||
+ state->timeout.tv_sec = levt->input_event_sec;
|
||||
+ state->timeout.tv_usec = levt->input_event_usec;
|
||||
timeout_add( &state->timeout, &timeout );
|
||||
}
|
||||
return 0;
|
||||
@@ -2268,15 +2278,17 @@ touchpad_fsm( struct touchpad_fsm_state *state,
|
||||
}
|
||||
}
|
||||
else if (touchpad_finger_leaving( levt )) {
|
||||
- if (!timeout_passed( &state->timeout, &levt->time )) {
|
||||
+ if (!timeout_passed( &state->timeout, &tval )) {
|
||||
devt->flags = DIEF_TIMESTAMP;
|
||||
- devt->timestamp = levt->time;
|
||||
+ devt->timestamp.tv_sec = levt->input_event_sec;
|
||||
+ devt->timestamp.tv_usec = levt->input_event_usec;
|
||||
devt->type = DIET_BUTTONPRESS;
|
||||
devt->button = DIBI_FIRST;
|
||||
|
||||
touchpad_fsm_init( state );
|
||||
state->fsm_state = TOUCHPAD_FSM_DRAG_START;
|
||||
- state->timeout = levt->time;
|
||||
+ state->timeout.tv_sec = levt->input_event_sec;
|
||||
+ state->timeout.tv_usec = levt->input_event_usec;
|
||||
timeout_add( &state->timeout, &timeout );
|
||||
return 1;
|
||||
}
|
||||
@@ -2287,7 +2299,7 @@ touchpad_fsm( struct touchpad_fsm_state *state,
|
||||
return 0;
|
||||
|
||||
case TOUCHPAD_FSM_DRAG_START:
|
||||
- if (timeout_passed( &state->timeout, &levt->time )){
|
||||
+ if (timeout_passed( &state->timeout, &tval )){
|
||||
devt->flags = DIEF_TIMESTAMP;
|
||||
devt->timestamp = state->timeout; /* timeout of levt->time? */
|
||||
devt->type = DIET_BUTTONRELEASE;
|
||||
@@ -2299,7 +2311,8 @@ touchpad_fsm( struct touchpad_fsm_state *state,
|
||||
else {
|
||||
if (touchpad_finger_landing( levt )) {
|
||||
state->fsm_state = TOUCHPAD_FSM_DRAG_MAIN;
|
||||
- state->timeout = levt->time;
|
||||
+ state->timeout.tv_sec = levt->input_event_sec;
|
||||
+ state->timeout.tv_usec = levt->input_event_usec;
|
||||
timeout_add( &state->timeout, &timeout );
|
||||
}
|
||||
}
|
||||
@@ -2314,7 +2327,8 @@ touchpad_fsm( struct touchpad_fsm_state *state,
|
||||
}
|
||||
else if (touchpad_finger_leaving( levt )) {
|
||||
devt->flags = DIEF_TIMESTAMP;
|
||||
- devt->timestamp = levt->time;
|
||||
+ devt->timestamp.tv_sec = levt->input_event_sec;
|
||||
+ devt->timestamp.tv_usec = levt->input_event_usec;
|
||||
devt->type = DIET_BUTTONRELEASE;
|
||||
devt->button = DIBI_FIRST;
|
||||
|
||||
Reference in New Issue
Block a user