diff options
author | takeshi_hoshina <takeshi_hoshina@mail.toyota.co.jp> | 2020-11-02 11:07:33 +0900 |
---|---|---|
committer | takeshi_hoshina <takeshi_hoshina@mail.toyota.co.jp> | 2020-11-02 11:07:33 +0900 |
commit | 1c7d6584a7811b7785ae5c1e378f14b5ba0971cf (patch) | |
tree | cd70a267a5ef105ba32f200aa088e281fbd85747 /external/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib | |
parent | 4204309872da5cb401cbb2729d9e2d4869a87f42 (diff) |
basesystem-jjsandbox/ToshikazuOhiwa/master-jj
recipes
Diffstat (limited to 'external/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib')
2 files changed, 419 insertions, 0 deletions
diff --git a/external/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib/0001-Fix-build-error-with-input_event_sec-for-old-kernel.patch b/external/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib/0001-Fix-build-error-with-input_event_sec-for-old-kernel.patch new file mode 100644 index 00000000..ea8a9e56 --- /dev/null +++ b/external/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib/0001-Fix-build-error-with-input_event_sec-for-old-kernel.patch @@ -0,0 +1,30 @@ +From 050bf24c16e95f63a76e13156346a072035d45b4 Mon Sep 17 00:00:00 2001 +From: Evan Harvey <evanwork1234@gmail.com> +Date: Thu, 19 Mar 2020 01:32:03 -0700 +Subject: [PATCH] Fix build error with input_event_sec for old kernel + +Upstream-Status: Backport [https://github.com/libts/tslib/commit/050bf24c16e95f63a76e13156346a072035d45b4] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + tools/ts_uinput.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/tools/ts_uinput.c b/tools/ts_uinput.c +index 1832a07..9c40bb3 100644 +--- a/tools/ts_uinput.c ++++ b/tools/ts_uinput.c +@@ -51,6 +51,11 @@ + #include <linux/fb.h> + #endif + ++#ifndef input_event_sec ++#define input_event_sec time.tv_sec ++#define input_event_usec time.tv_usec ++#endif ++ + #define RESET "\033[0m" + #define RED "\033[31m" + #define GREEN "\033[32m" +-- +2.26.2 + diff --git a/external/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch b/external/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch new file mode 100644 index 00000000..59bd97a0 --- /dev/null +++ b/external/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch @@ -0,0 +1,389 @@ +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 + |