summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordavidycchen <davidycchen@google.com>2022-03-24 13:59:39 +0800
committerdavidycchen <davidycchen@google.com>2022-03-24 13:59:39 +0800
commit2de062b3f8aef923779eb4420840f30b1d362c34 (patch)
treecdcc60c30b16f6c5ecd3e95f13c9ff4b3b85ed4c
parentfd714df3228c66bf71209f19b5ad133c381e8efc (diff)
downloadsynaptics_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.c16
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,