Commit 36f5d9ef authored by Nick Dyer's avatar Nick Dyer Committed by Dmitry Torokhov

Input: atmel_mxt_ts - only use first T9 instance

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: default avatarNick Dyer <nick.dyer@itdev.co.uk>
Acked-by: default avatarBenson Leung <bleung@chromium.org>
Acked-by: default avatarYufeng Shen <miletus@chromium.org>
Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 53fddb66
...@@ -1658,10 +1658,11 @@ static int mxt_parse_object_table(struct mxt_data *data, ...@@ -1658,10 +1658,11 @@ static int mxt_parse_object_table(struct mxt_data *data,
break; break;
case MXT_TOUCH_MULTI_T9: case MXT_TOUCH_MULTI_T9:
data->multitouch = 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_min = min_id;
data->T9_reportid_max = max_id; data->T9_reportid_max = min_id +
data->num_touchids = object->num_report_ids object->num_report_ids - 1;
* mxt_obj_instances(object); data->num_touchids = object->num_report_ids;
break; break;
case MXT_SPT_MESSAGECOUNT_T44: case MXT_SPT_MESSAGECOUNT_T44:
data->T44_address = object->start_address; data->T44_address = object->start_address;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment