| From foo@baz Mon Sep 17 12:33:31 CEST 2018 |
| From: Nick Dyer <nick.dyer@itdev.co.uk> |
| Date: Fri, 27 Jul 2018 11:44:20 -0700 |
| Subject: Input: atmel_mxt_ts - only use first T9 instance |
| |
| From: Nick Dyer <nick.dyer@itdev.co.uk> |
| |
| [ Upstream commit 36f5d9ef26e52edff046b4b097855db89bf0cd4a ] |
| |
| The driver only registers one input device, which uses the screen |
| parameters from the first T9 instance. The first T63 instance also uses |
| those parameters. |
| |
| It is incorrect to send input reports from the second instances of these |
| objects if they are enabled: the input scaling will be wrong and the |
| positions will be mashed together. |
| |
| This also causes problems on Android if the number of slots exceeds 32. |
| |
| In the future, this could be handled by looking for enabled touch object |
| instances and creating an input device for each one. |
| |
| Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> |
| Acked-by: Benson Leung <bleung@chromium.org> |
| Acked-by: Yufeng Shen <miletus@chromium.org> |
| Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/input/touchscreen/atmel_mxt_ts.c | 7 ++++--- |
| 1 file changed, 4 insertions(+), 3 deletions(-) |
| |
| --- a/drivers/input/touchscreen/atmel_mxt_ts.c |
| +++ b/drivers/input/touchscreen/atmel_mxt_ts.c |
| @@ -1647,10 +1647,11 @@ static int mxt_parse_object_table(struct |
| break; |
| case MXT_TOUCH_MULTI_T9: |
| data->multitouch = MXT_TOUCH_MULTI_T9; |
| + /* Only handle messages from first T9 instance */ |
| data->T9_reportid_min = min_id; |
| - data->T9_reportid_max = max_id; |
| - data->num_touchids = object->num_report_ids |
| - * mxt_obj_instances(object); |
| + data->T9_reportid_max = min_id + |
| + object->num_report_ids - 1; |
| + data->num_touchids = object->num_report_ids; |
| break; |
| case MXT_SPT_MESSAGECOUNT_T44: |
| data->T44_address = object->start_address; |