diff options
author | davidycchen <davidycchen@google.com> | 2022-03-24 13:59:39 +0800 |
---|---|---|
committer | davidycchen <davidycchen@google.com> | 2022-03-24 13:59:39 +0800 |
commit | 2de062b3f8aef923779eb4420840f30b1d362c34 (patch) | |
tree | cdcc60c30b16f6c5ecd3e95f13c9ff4b3b85ed4c | |
parent | fd714df3228c66bf71209f19b5ad133c381e8efc (diff) | |
download | synaptics_touch-2de062b3f8aef923779eb4420840f30b1d362c34.tar.gz |
synaptics: add palm tool type in offload_report
Bug:225748667
Test: touch is workable.
Signed-off-by: davidycchen <davidycchen@google.com>
Change-Id: If8ad53e3f9cb2531836b5e717f50f87031d7f492
-rw-r--r-- | syna_tcm2.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/syna_tcm2.c b/syna_tcm2.c index 0e6cdc1..8884c6f 100644 --- a/syna_tcm2.c +++ b/syna_tcm2.c @@ -970,13 +970,14 @@ static void syna_offload_report(void *handle, bool touch_down = 0; int i; int touch_count = 0; + int tool_type; syna_pal_mutex_lock(&tcm->tp_event_mutex); input_set_timestamp(tcm->input_dev, report->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(tcm->input_dev, i); touch_count++; touch_down = 1; @@ -984,8 +985,19 @@ static void syna_offload_report(void *handle, touch_down); input_report_key(tcm->input_dev, BTN_TOOL_FINGER, touch_down); + 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(tcm->input_dev, - MT_TOOL_FINGER, 1); + tool_type, 1); input_report_abs(tcm->input_dev, ABS_MT_POSITION_X, report->coords[i].x); input_report_abs(tcm->input_dev, ABS_MT_POSITION_Y, |