diff options
author | Mason Wang <masonwang@google.com> | 2022-02-11 15:50:20 +0800 |
---|---|---|
committer | Mason Wang <masonwang@google.com> | 2022-02-11 16:34:11 +0800 |
commit | de640e9caaacb1aaa2bcb728abcc01661fd5ba91 (patch) | |
tree | 5a6b38dd56c109758a0fd18b8577f61d03bca270 /ft3658/focaltech_core.c | |
parent | c258b9c629f2c65fb1f85900ed36d87158001549 (diff) | |
download | focaltech_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.c | 14 |
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); |