Commit 4323418d authored by Florian Echtler's avatar Florian Echtler Committed by Dmitry Torokhov

Input: sur40 - skip all blobs that are not touches

The SUR40 labels all reported blobs as touch, token, or generic blob.
Previously, all blobs were reported as touch regardless of type, causing
lots of false positives. Present patch fixes this.
Signed-off-by: default avatarMartin Kaltenbrunner <modin@yuri.at>
Signed-off-by: default avatarFlorian Echtler <floe@butterbrot.org>
Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 335abaea
......@@ -296,20 +296,24 @@ static void sur40_close(struct input_polled_dev *polldev)
static void sur40_report_blob(struct sur40_blob *blob, struct input_dev *input)
{
int wide, major, minor;
int bb_size_x, bb_size_y, pos_x, pos_y, ctr_x, ctr_y, slotnum;
int bb_size_x = le16_to_cpu(blob->bb_size_x);
int bb_size_y = le16_to_cpu(blob->bb_size_y);
int pos_x = le16_to_cpu(blob->pos_x);
int pos_y = le16_to_cpu(blob->pos_y);
int ctr_x = le16_to_cpu(blob->ctr_x);
int ctr_y = le16_to_cpu(blob->ctr_y);
if (blob->type != SUR40_TOUCH)
return;
int slotnum = input_mt_get_slot_by_key(input, blob->blob_id);
slotnum = input_mt_get_slot_by_key(input, blob->blob_id);
if (slotnum < 0 || slotnum >= MAX_CONTACTS)
return;
bb_size_x = le16_to_cpu(blob->bb_size_x);
bb_size_y = le16_to_cpu(blob->bb_size_y);
pos_x = le16_to_cpu(blob->pos_x);
pos_y = le16_to_cpu(blob->pos_y);
ctr_x = le16_to_cpu(blob->ctr_x);
ctr_y = le16_to_cpu(blob->ctr_y);
input_mt_slot(input, slotnum);
input_mt_report_slot_state(input, MT_TOOL_FINGER, 1);
wide = (bb_size_x > bb_size_y);
......
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