summaryrefslogtreecommitdiff
path: root/ft3658/focaltech_core.c
diff options
context:
space:
mode:
authorMason Wang <masonwang@google.com>2022-02-11 15:50:20 +0800
committerMason Wang <masonwang@google.com>2022-02-11 16:34:11 +0800
commitde640e9caaacb1aaa2bcb728abcc01661fd5ba91 (patch)
tree5a6b38dd56c109758a0fd18b8577f61d03bca270 /ft3658/focaltech_core.c
parentc258b9c629f2c65fb1f85900ed36d87158001549 (diff)
downloadfocaltech_touch-de640e9caaacb1aaa2bcb728abcc01661fd5ba91.tar.gz
touch/focaltech: report input timestamp.
Bug: 199105209 Test: Touch is workable. Signed-off-by: Mason Wang <masonwang@google.com> Change-Id: Ie1471a7c7cb597f4ac7c4aa98dcbfc637c0dff02
Diffstat (limited to 'ft3658/focaltech_core.c')
-rw-r--r--ft3658/focaltech_core.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/ft3658/focaltech_core.c b/ft3658/focaltech_core.c
index d5bd4dc..c0801c3 100644
--- a/ft3658/focaltech_core.c
+++ b/ft3658/focaltech_core.c
@@ -581,7 +581,7 @@ static int fts_input_report_b(struct fts_ts_data *data)
input_report_key(data->input_dev, BTN_TOUCH, 1);
}
}
-
+ input_set_timestamp(data->input_dev, data->timestamp);
input_sync(data->input_dev);
return 0;
}
@@ -646,7 +646,7 @@ static int fts_input_report_a(struct fts_ts_data *data)
input_report_key(data->input_dev, BTN_TOUCH, 1);
}
}
-
+ input_set_timestamp(data->input_dev, data->timestamp);
input_sync(data->input_dev);
return 0;
}
@@ -1097,6 +1097,14 @@ static void unregister_panel_bridge(struct drm_bridge *bridge)
}
#endif
+static irqreturn_t fts_irq_ts(int irq, void *data)
+{
+ struct fts_ts_data *ts_data = data;
+
+ ts_data->timestamp = ktime_get();
+ return IRQ_WAKE_THREAD;
+}
+
extern int int_test_has_interrupt;
static irqreturn_t fts_irq_handler(int irq, void *data)
{
@@ -1143,7 +1151,7 @@ static int fts_irq_registration(struct fts_ts_data *ts_data)
ts_data->irq = gpio_to_irq(pdata->irq_gpio);
pdata->irq_gpio_flags = IRQF_TRIGGER_FALLING | IRQF_ONESHOT;
FTS_INFO("irq:%d, flag:%x", ts_data->irq, pdata->irq_gpio_flags);
- ret = request_threaded_irq(ts_data->irq, NULL, fts_irq_handler,
+ ret = request_threaded_irq(ts_data->irq, fts_irq_ts, fts_irq_handler,
pdata->irq_gpio_flags,
FTS_DRIVER_NAME, ts_data);