Add TW_IGNORE_ABS_MT_TRACKING_ID

Fixes touch on Oppo R7 Plus

Oppo R7 Plus, when recovery is flashed and booted from the actual
recovery partition, the digitizer sends some extra touch data for
up to 10 different touch slots even if no actual touch is present
for those slots (ABS_MT_SLOT). This patch allows TWRP to handle
touch data properly for this device and maybe others.

Change-Id: I8f9171b605566788b674b3d4d96bd9f2f65736c2
This commit is contained in:
Ethan Yonker
2015-08-26 15:29:23 -05:00
committed by Dees Troy
parent 89583ef00f
commit d6821a11bb
2 changed files with 14 additions and 0 deletions
+4
View File
@@ -97,6 +97,10 @@ ifeq ($(TW_IGNORE_MT_POSITION_0), true)
LOCAL_CFLAGS += -DTW_IGNORE_MT_POSITION_0
endif
ifeq ($(TW_IGNORE_ABS_MT_TRACKING_ID), true)
LOCAL_CFLAGS += -DTW_IGNORE_ABS_MT_TRACKING_ID
endif
ifneq ($(TW_INPUT_BLACKLIST),)
LOCAL_CFLAGS += -DTW_INPUT_BLACKLIST=$(TW_INPUT_BLACKLIST)
endif
+10
View File
@@ -545,6 +545,12 @@ static int vk_modify(struct ev *e, struct input_event *ev)
break;
case ABS_MT_TRACKING_ID: //39
#ifdef TW_IGNORE_ABS_MT_TRACKING_ID
#ifdef _EVENT_LOGGING
printf("EV: %s => EV_ABS ABS_MT_TRACKING_ID %d ignored\n", e->deviceName, ev->value);
#endif
return 1;
#endif
if (ev->value < 0) {
e->mt_p.x = 0;
e->mt_p.y = 0;
@@ -581,6 +587,10 @@ static int vk_modify(struct ev *e, struct input_event *ev)
printf("EV: %s => EV_ABS ABS_MT_DISTANCE %d\n", e->deviceName, ev->value);
return 1;
break;
case ABS_MT_SLOT:
printf("EV: %s => ABS_MT_SLOT %d\n", e->deviceName, ev->value);
return 1;
break;
#endif
default: