From 909b254eb818f63ba0e541abbbe829d923c19234 Mon Sep 17 00:00:00 2001 From: Daniel Martin Date: Fri, 2 Oct 2015 10:07:15 +0200 Subject: [PATCH 2/4] HID: multitouch: Add MT_QUIRK_NOT_SEEN_MEANS_UP to MT_CLS_WIN_8 The firmware found in the touch screen of an SP3 is buggy and may miss to send lift off reports for contacts. Try to work around that issue by using MT_QUIRK_NOT_SEEN_MEANS_UP. Signed-off-by: Daniel Martin --- drivers/hid/hid-multitouch.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c index 1cc1108..625f1ee 100644 --- a/drivers/hid/hid-multitouch.c +++ b/drivers/hid/hid-multitouch.c @@ -206,7 +206,8 @@ static struct mt_class mt_classes[] = { .quirks = MT_QUIRK_ALWAYS_VALID | MT_QUIRK_IGNORE_DUPLICATES | MT_QUIRK_HOVERING | - MT_QUIRK_CONTACT_CNT_ACCURATE }, + MT_QUIRK_CONTACT_CNT_ACCURATE | + MT_QUIRK_NOT_SEEN_MEANS_UP }, { .name = MT_CLS_EXPORT_ALL_INPUTS, .quirks = MT_QUIRK_ALWAYS_VALID | MT_QUIRK_CONTACT_CNT_ACCURATE, @@ -1054,7 +1055,8 @@ static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id) return -ENOMEM; } - if (id->vendor == HID_ANY_ID && id->product == HID_ANY_ID) + if (id->vendor == HID_ANY_ID && id->product == HID_ANY_ID && + id->group != HID_GROUP_MULTITOUCH_WIN_8) td->serial_maybe = true; ret = hid_parse(hdev); -- 2.1.4