diff options
author | davidycchen <davidycchen@google.com> | 2022-03-24 14:09:48 +0800 |
---|---|---|
committer | davidycchen <davidycchen@google.com> | 2022-03-24 14:09:48 +0800 |
commit | 8a052d42fc7fa1ef3f9377f8f76fc3320332ab43 (patch) | |
tree | 61809414ff9728833b4c05d5bb2a09887e66c271 | |
parent | 8bf43151e1bc346577314114d968ae5a9d3f0362 (diff) | |
download | focaltech_touch-8a052d42fc7fa1ef3f9377f8f76fc3320332ab43.tar.gz |
touch/focaltech: add palm tool type in offload_report.
Bug:225748669
Test: Touch is workable.
Signed-off-by: davidycchen <davidycchen@google.com>
Change-Id: I539a2e379bef83f629d2827778b958a8b9f158f5
-rw-r--r-- | ft3658/focaltech_core.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/ft3658/focaltech_core.c b/ft3658/focaltech_core.c index 97e8cbf..ea5a3d0 100644 --- a/ft3658/focaltech_core.c +++ b/ft3658/focaltech_core.c @@ -1479,19 +1479,31 @@ static void fts_offload_report(void *handle, bool touch_down = 0; int i; int touch_count = 0; + int tool_type; mutex_lock(&ts_data->report_mutex); input_set_timestamp(ts_data->input_dev, ts_data->coords_timestamp); for (i = 0; i < MAX_COORDS; i++) { - if (report->coords[i].status == COORD_STATUS_FINGER) { + if (report->coords[i].status != COORD_STATUS_INACTIVE) { input_mt_slot(ts_data->input_dev, i); touch_count++; touch_down = 1; input_report_key(ts_data->input_dev, BTN_TOUCH, touch_down); input_report_key(ts_data->input_dev, BTN_TOOL_FINGER, touch_down); - input_mt_report_slot_state(ts_data->input_dev, MT_TOOL_FINGER, 1); + switch (report->coords[i].status) { + case COORD_STATUS_EDGE: + case COORD_STATUS_PALM: + case COORD_STATUS_CANCEL: + tool_type = MT_TOOL_PALM; + break; + case COORD_STATUS_FINGER: + default: + tool_type = MT_TOOL_FINGER; + break; + } + input_mt_report_slot_state(ts_data->input_dev, tool_type, 1); input_report_abs(ts_data->input_dev, ABS_MT_POSITION_X, report->coords[i].x); input_report_abs(ts_data->input_dev, ABS_MT_POSITION_Y, |