summaryrefslogtreecommitdiff
path: root/ft3658
diff options
context:
space:
mode:
authordavidycchen <davidycchen@google.com>2022-03-24 14:09:48 +0800
committerdavidycchen <davidycchen@google.com>2022-03-24 14:09:48 +0800
commit8a052d42fc7fa1ef3f9377f8f76fc3320332ab43 (patch)
tree61809414ff9728833b4c05d5bb2a09887e66c271 /ft3658
parent8bf43151e1bc346577314114d968ae5a9d3f0362 (diff)
downloadfocaltech_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
Diffstat (limited to 'ft3658')
-rw-r--r--ft3658/focaltech_core.c16
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,