From 32f68a3c92ee8bc403b5cff6080b47ffba4f1ce7 Mon Sep 17 00:00:00 2001 From: Ethan Yonker Date: Mon, 29 Dec 2014 08:13:23 -0600 Subject: Add TW_IGNORE_MT_POSITION_0 touch flag This fixes touch on the a11 when fastboot booting the image. We are also adding event logging for ABS_MT_POSITION data which we should have been logging before but for some reason we did not. Change-Id: I1b38c31c716efdcbe48db4faa5d0cef97c91c58e --- minuitwrp/Android.mk | 4 ++++ minuitwrp/events.c | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/minuitwrp/Android.mk b/minuitwrp/Android.mk index cf1eb5af2..c4380aadd 100644 --- a/minuitwrp/Android.mk +++ b/minuitwrp/Android.mk @@ -85,6 +85,10 @@ ifeq ($(TW_IGNORE_MAJOR_AXIS_0), true) LOCAL_CFLAGS += -DTW_IGNORE_MAJOR_AXIS_0 endif +ifeq ($(TW_IGNORE_MT_POSITION_0), true) +LOCAL_CFLAGS += -DTW_IGNORE_MT_POSITION_0 +endif + ifneq ($(TW_INPUT_BLACKLIST),) LOCAL_CFLAGS += -DTW_INPUT_BLACKLIST=$(TW_INPUT_BLACKLIST) endif diff --git a/minuitwrp/events.c b/minuitwrp/events.c index 61fcf95ea..f02edd34f 100644 --- a/minuitwrp/events.c +++ b/minuitwrp/events.c @@ -458,15 +458,27 @@ static int vk_modify(struct ev *e, struct input_event *ev) e->mt_p.synced = 0x03; if (ev->value == (1 << 31)) { +#ifndef TW_IGNORE_MT_POSITION_0 e->mt_p.x = 0; e->mt_p.y = 0; lastWasSynReport = 1; +#endif +#ifdef _EVENT_LOGGING +#ifndef TW_IGNORE_MT_POSITION_0 + printf("EV: %s => EV_ABS ABS_MT_POSITION %d, set x and y to 0 and lastWasSynReport to 1\n", e->deviceName, ev->value); +#else + printf("Ignoring ABS_MT_POSITION 0\n", e->deviceName, ev->value); +#endif +#endif } else { lastWasSynReport = 0; e->mt_p.x = (ev->value & 0x7FFF0000) >> 16; e->mt_p.y = (ev->value & 0xFFFF); +#ifdef _EVENT_LOGGING + printf("EV: %s => EV_ABS ABS_MT_POSITION %d, set x: %d and y: %d and lastWasSynReport to 0\n", e->deviceName, ev->value, (ev->value & 0x7FFF0000) >> 16, (ev->value & 0xFFFF)); +#endif } break; -- cgit v1.2.3