diff options
author | Joey Pabalinas | 2018-06-30 17:35:15 -1000 |
---|---|---|
committer | Joey Pabalinas | 2018-06-30 17:35:15 -1000 |
commit | 7160ff9fc51814697dca5e99ae31cf60caf6d9c2 (patch) | |
tree | 78e1f3fb67712f71507458a89585f4dcffbe1216 | |
parent | d14294613fbf2d3346ceaa17ba903bb985de541a (diff) | |
download | aur-7160ff9fc51814697dca5e99ae31cf60caf6d9c2.tar.gz |
upgpkg: linux-surfacepro3-git 4.18rc2.r298.g883c9ab9eb595f8542-1
upstream release
-rw-r--r-- | .SRCINFO | 16 | ||||
-rw-r--r-- | 0001-HID-multitouch-add-MT_QUIRK_NOT_SEEN_MEANS_UP-to-MT_.patch | 44 | ||||
-rw-r--r-- | 0002-HID-multitouch-don-t-check-HID_GROUP_MULTITOUCH_WIN_.patch | 44 | ||||
-rw-r--r-- | 0003-HID-multitouch-drop-reports-containing-invalid-value.patch | 48 | ||||
-rw-r--r-- | 0004-HID-multitouch-remove-unneeded-else-conditional-case.patch | 73 | ||||
-rw-r--r-- | PKGBUILD | 28 |
6 files changed, 230 insertions, 23 deletions
@@ -1,5 +1,5 @@ pkgbase = linux-surfacepro3-git - pkgver = 4.18rc2.r223.g1904148a361a07fb2d + pkgver = 4.18rc2.r298.g883c9ab9eb595f8542 pkgrel = 1 url = http://www.kernel.org/ arch = i686 @@ -18,17 +18,19 @@ pkgbase = linux-surfacepro3-git source = config source = config.x86_64 source = config.sp3 - source = touchscreen_multitouch_fixes1.patch - source = touchscreen_multitouch_fixes2.patch - source = kvm.patch + source = 0001-HID-multitouch-add-MT_QUIRK_NOT_SEEN_MEANS_UP-to-MT_.patch + source = 0002-HID-multitouch-don-t-check-HID_GROUP_MULTITOUCH_WIN_.patch + source = 0003-HID-multitouch-drop-reports-containing-invalid-value.patch + source = 0004-HID-multitouch-remove-unneeded-else-conditional-case.patch sha256sums = SKIP sha256sums = 31d109a2f5864d865b3ce3c310158b2e9ae77f9c424f2af5a7e45548d62a2eb3 sha256sums = becc0c98cff692dee9500f19d38882636caf4c58d5086c7725690a245532f5dc sha256sums = 56152d1f7cac31d0a9a7414e950106c3945d5de8d50bc75cf7385fa46078b1de sha256sums = f3d9407345f2dce4966d2ffbc45d3d83d6f9fdcbac1efe83e8816b63e20d09b0 - sha256sums = cc78e8844d9ec4bd29cce392a3e4683061646e1ad7c100c4958a5cadabb25b52 - sha256sums = 34b4e00ffcf9efc43ab47444d14febb94432d340d0f1d5bcd56153879d1be113 - sha256sums = 80ea7d3afaa333572d79fbf39c0370641faea3a013f76747a7465c3a96a58be6 + sha256sums = 82f1b3fd8d59ca406225c9915e3799d9bafad440a211eb50fcca0cefbb8ecb2a + sha256sums = 28ccd02a460f65af19655d505e3fb37a12497093d70da06f58f5084c0fa1ebd9 + sha256sums = 1778e4076654d857e994062c0f92fa3528bae5595d235ec8b51f55f7c14b036b + sha256sums = b2b2e6d9037d04c168311c25e6b4d2295d1e153f132782c6397341d105edbafd pkgname = linux-surfacepro3-git pkgdesc = The Linux-surfacepro3 kernel and modules (git version) diff --git a/0001-HID-multitouch-add-MT_QUIRK_NOT_SEEN_MEANS_UP-to-MT_.patch b/0001-HID-multitouch-add-MT_QUIRK_NOT_SEEN_MEANS_UP-to-MT_.patch new file mode 100644 index 000000000000..d05cfa5fddb9 --- /dev/null +++ b/0001-HID-multitouch-add-MT_QUIRK_NOT_SEEN_MEANS_UP-to-MT_.patch @@ -0,0 +1,44 @@ +From 958e450a066289c94ba03429166c972c54be6fb3 Mon Sep 17 00:00:00 2001 +Message-Id: <958e450a066289c94ba03429166c972c54be6fb3.1530402641.git.joeypabalinas@gmail.com> +In-Reply-To: <cover.1530402641.git.joeypabalinas@gmail.com> +References: <cover.1530402641.git.joeypabalinas@gmail.com> +From: Joey Pabalinas <joeypabalinas@gmail.com> +To: linux-input@vger.kernel.org +CC: linux-kernel@vger.kernel.org +CC: Jiri Kosina <jikos@kernel.org> +CC: Benjamin Tissoires <benjamin.tissoires@redhat.com> +CC: Daniel Martin <consume.noise@gmail.com> +CC: Joey Pabalinas <joeypabalinas@gmail.com> +Date: Sat, 30 Jun 2018 13:13:16 -1000 +Subject: [PATCH 1/4] HID: multitouch: add MT_QUIRK_NOT_SEEN_MEANS_UP to MT_CLS_WIN_8 quirks + +The firmware found in the touch screen of the Surface Pro 3 is slightly +buggy and occasionally doesn't send lift off reports for contacts; add +MT_QUIRK_NOT_SEEN_MEANS_UP to .quirks to compensate for the missed +reports. + +Signed-off-by: Joey Pabalinas <joeypabalinas@gmail.com> + + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c +index 45968f7970f87775fa..a793076139d7d0db9b 100644 +--- a/drivers/hid/hid-multitouch.c ++++ b/drivers/hid/hid-multitouch.c +@@ -242,11 +242,12 @@ 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_STICKY_FINGERS | +- MT_QUIRK_WIN8_PTP_BUTTONS }, ++ MT_QUIRK_WIN8_PTP_BUTTONS | ++ MT_QUIRK_NOT_SEEN_MEANS_UP }, + { .name = MT_CLS_EXPORT_ALL_INPUTS, + .quirks = MT_QUIRK_ALWAYS_VALID | + MT_QUIRK_CONTACT_CNT_ACCURATE, + .export_all_inputs = true }, + { .name = MT_CLS_WIN_8_DUAL, +-- +2.18.0 + diff --git a/0002-HID-multitouch-don-t-check-HID_GROUP_MULTITOUCH_WIN_.patch b/0002-HID-multitouch-don-t-check-HID_GROUP_MULTITOUCH_WIN_.patch new file mode 100644 index 000000000000..d6da6346b4a2 --- /dev/null +++ b/0002-HID-multitouch-don-t-check-HID_GROUP_MULTITOUCH_WIN_.patch @@ -0,0 +1,44 @@ +From 0aaacf083be5b68a830f9e174f9abee3b00c5a51 Mon Sep 17 00:00:00 2001 +Message-Id: <0aaacf083be5b68a830f9e174f9abee3b00c5a51.1530402641.git.joeypabalinas@gmail.com> +In-Reply-To: <cover.1530402641.git.joeypabalinas@gmail.com> +References: <cover.1530402641.git.joeypabalinas@gmail.com> +From: Joey Pabalinas <joeypabalinas@gmail.com> +To: linux-input@vger.kernel.org +CC: linux-kernel@vger.kernel.org +CC: Jiri Kosina <jikos@kernel.org> +CC: Benjamin Tissoires <benjamin.tissoires@redhat.com> +CC: Daniel Martin <consume.noise@gmail.com> +CC: Joey Pabalinas <joeypabalinas@gmail.com> +Date: Sat, 30 Jun 2018 13:23:05 -1000 +Subject: [PATCH 2/4] HID: multitouch: don't check HID_GROUP_MULTITOUCH_WIN_8 for serial protocol + +The HID_GROUP_MULTITOUCH_WIN_8 group never needs to check for the serial +protocol, so avoid setting `td->serial_maybe = true;` in order to avoid +an unnecessary mt_post_parse_default_settings() call + +Signed-off-by: Joey Pabalinas <joeypabalinas@gmail.com> + + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c +index a793076139d7d0db9b..c0654db0b736543ca0 100644 +--- a/drivers/hid/hid-multitouch.c ++++ b/drivers/hid/hid-multitouch.c +@@ -1460,11 +1460,13 @@ static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id) + if (!td->fields) { + dev_err(&hdev->dev, "cannot allocate multitouch fields data\n"); + 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; + + /* This allows the driver to correctly support devices + * that emit events over several HID messages. + */ +-- +2.18.0 + diff --git a/0003-HID-multitouch-drop-reports-containing-invalid-value.patch b/0003-HID-multitouch-drop-reports-containing-invalid-value.patch new file mode 100644 index 000000000000..9649e0ffc093 --- /dev/null +++ b/0003-HID-multitouch-drop-reports-containing-invalid-value.patch @@ -0,0 +1,48 @@ +From 29ad484c1b357fd7fd670a6f252d097677b808f8 Mon Sep 17 00:00:00 2001 +Message-Id: <29ad484c1b357fd7fd670a6f252d097677b808f8.1530402641.git.joeypabalinas@gmail.com> +In-Reply-To: <cover.1530402641.git.joeypabalinas@gmail.com> +References: <cover.1530402641.git.joeypabalinas@gmail.com> +From: Joey Pabalinas <joeypabalinas@gmail.com> +To: linux-input@vger.kernel.org +CC: linux-kernel@vger.kernel.org +CC: Jiri Kosina <jikos@kernel.org> +CC: Benjamin Tissoires <benjamin.tissoires@redhat.com> +CC: Daniel Martin <consume.noise@gmail.com> +CC: Joey Pabalinas <joeypabalinas@gmail.com> +Date: Sat, 30 Jun 2018 13:29:56 -1000 +Subject: [PATCH 3/4] HID: multitouch: drop reports containing invalid values + +Avoid processing reports containing invalid values to reduce +multitouch input stutter. + +Signed-off-by: Joey Pabalinas <joeypabalinas@gmail.com> + + 1 file changed, 9 insertions(+) + +diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c +index c0654db0b736543ca0..08b50e5908cecdda66 100644 +--- a/drivers/hid/hid-multitouch.c ++++ b/drivers/hid/hid-multitouch.c +@@ -694,10 +694,19 @@ static void mt_complete_slot(struct mt_device *td, struct input_dev *input) + { + if ((td->mtclass.quirks & MT_QUIRK_CONTACT_CNT_ACCURATE) && + td->num_received >= td->num_expected) + return; + ++ /* drop invalid values after counting them */ ++ if (td->curdata.x == 0xffff && ++ td->curdata.y == 0xffff && ++ td->curdata.w == 0xffff && ++ td->curdata.h == 0xffff) { ++ td->num_received++; ++ return; ++ } ++ + if (td->curvalid || (td->mtclass.quirks & MT_QUIRK_ALWAYS_VALID)) { + int active; + int slotnum = mt_compute_slot(td, input); + struct mt_slot *s = &td->curdata; + struct input_mt *mt = input->mt; +-- +2.18.0 + diff --git a/0004-HID-multitouch-remove-unneeded-else-conditional-case.patch b/0004-HID-multitouch-remove-unneeded-else-conditional-case.patch new file mode 100644 index 000000000000..67b59e95f655 --- /dev/null +++ b/0004-HID-multitouch-remove-unneeded-else-conditional-case.patch @@ -0,0 +1,73 @@ +From d35643165a1d1972fd91e547922697a3c785a413 Mon Sep 17 00:00:00 2001 +Message-Id: <d35643165a1d1972fd91e547922697a3c785a413.1530402641.git.joeypabalinas@gmail.com> +In-Reply-To: <cover.1530402641.git.joeypabalinas@gmail.com> +References: <cover.1530402641.git.joeypabalinas@gmail.com> +From: Joey Pabalinas <joeypabalinas@gmail.com> +To: linux-input@vger.kernel.org +CC: linux-kernel@vger.kernel.org +CC: Jiri Kosina <jikos@kernel.org> +CC: Benjamin Tissoires <benjamin.tissoires@redhat.com> +CC: Daniel Martin <consume.noise@gmail.com> +CC: Joey Pabalinas <joeypabalinas@gmail.com> +Date: Sat, 30 Jun 2018 13:34:22 -1000 +Subject: [PATCH 4/4] HID: multitouch: remove unneeded else conditional cases + +Elide lone `else` cases and replace `else if` clauses +with plain `if` conditionals when they occur immediately +after return statements. + +Signed-off-by: Joey Pabalinas <joeypabalinas@gmail.com> + + 1 file changed, 6 insertions(+), 5 deletions(-) + +diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c +index 08b50e5908cecdda66..30b1a2c67f39a41325 100644 +--- a/drivers/hid/hid-multitouch.c ++++ b/drivers/hid/hid-multitouch.c +@@ -205,12 +205,12 @@ static void mt_post_parse(struct mt_device *td); + + static int cypress_compute_slot(struct mt_device *td) + { + if (td->curdata.contactid != 0 || td->num_received == 0) + return td->curdata.contactid; +- else +- return -1; ++ ++ return -1; + } + + static struct mt_class mt_classes[] = { + { .name = MT_CLS_DEFAULT, + .quirks = MT_QUIRK_ALWAYS_VALID | +@@ -803,12 +803,12 @@ static int mt_compute_timestamp(struct mt_device *td, struct hid_field *field, + delta *= 100; + + if (jdelta > MAX_TIMESTAMP_INTERVAL) + /* No data received for a while, resync the timestamp. */ + return 0; +- else +- return td->timestamp + delta; ++ ++ return td->timestamp + delta; + } + + static int mt_touch_event(struct hid_device *hid, struct hid_field *field, + struct hid_usage *usage, __s32 value) + { +@@ -1110,11 +1110,12 @@ static int mt_input_mapping(struct hid_device *hdev, struct hid_input *hi, + * HID_DG_CONTACTCOUNT from the pen report as it is outside the physical + * collection, but within the report ID. + */ + if (field->physical == HID_DG_STYLUS) + return 0; +- else if ((field->physical == 0) && ++ ++ if ((field->physical == 0) && + (field->report->id != td->mt_report_id) && + (td->mt_report_id != -1)) + return 0; + + if (field->application == HID_DG_TOUCHSCREEN || +-- +2.18.0 + @@ -2,7 +2,7 @@ pkgbase=linux-surfacepro3-git _srcname=linux -pkgver=4.18rc2.r223.g1904148a361a07fb2d +pkgver=4.18rc2.r298.g883c9ab9eb595f8542 pkgrel=1 arch=('i686' 'x86_64') url="http://www.kernel.org/" @@ -15,22 +15,23 @@ source=( # standard config files for mkinitcpio ramdisk "${pkgbase}.preset" "config" "config.x86_64" "config.sp3" - "touchscreen_multitouch_fixes1.patch" - "touchscreen_multitouch_fixes2.patch" - "kvm.patch") + "0001-HID-multitouch-add-MT_QUIRK_NOT_SEEN_MEANS_UP-to-MT_.patch" + "0002-HID-multitouch-don-t-check-HID_GROUP_MULTITOUCH_WIN_.patch" + "0003-HID-multitouch-drop-reports-containing-invalid-value.patch" + "0004-HID-multitouch-remove-unneeded-else-conditional-case.patch") sha256sums=('SKIP' '31d109a2f5864d865b3ce3c310158b2e9ae77f9c424f2af5a7e45548d62a2eb3' 'becc0c98cff692dee9500f19d38882636caf4c58d5086c7725690a245532f5dc' '56152d1f7cac31d0a9a7414e950106c3945d5de8d50bc75cf7385fa46078b1de' 'f3d9407345f2dce4966d2ffbc45d3d83d6f9fdcbac1efe83e8816b63e20d09b0' - 'cc78e8844d9ec4bd29cce392a3e4683061646e1ad7c100c4958a5cadabb25b52' - '34b4e00ffcf9efc43ab47444d14febb94432d340d0f1d5bcd56153879d1be113' - '80ea7d3afaa333572d79fbf39c0370641faea3a013f76747a7465c3a96a58be6') + '82f1b3fd8d59ca406225c9915e3799d9bafad440a211eb50fcca0cefbb8ecb2a' + '28ccd02a460f65af19655d505e3fb37a12497093d70da06f58f5084c0fa1ebd9' + '1778e4076654d857e994062c0f92fa3528bae5595d235ec8b51f55f7c14b036b' + 'b2b2e6d9037d04c168311c25e6b4d2295d1e153f132782c6397341d105edbafd') _sp3config="y" # _makenconfig="y" _interactive="y" -_kvmkillable_patch="n" _touchscreen_patch="n" _kernelname="${pkgbase#linux}" @@ -47,14 +48,9 @@ prepare() { # These patches work around buggy hardware implementations # in the surface pro 3 touchscreen module. if [[ "$_touchscreen_patch" == y ]]; then - patch -p1 -F5 -i "$srcdir/touchscreen_multitouch_fixes1.patch" - patch -p1 -F5 -i "$srcdir/touchscreen_multitouch_fixes2.patch" - fi - - # This patch replaces the TASK_UNINTERRUPTIBLE - # wait implementation with a TASK_KILLABLE one. - if [[ "$_kvmkillable_patch" == y ]]; then - patch -p1 -F5 -i "$srcdir/kvm.patch" + for i in "$srcdir/"000*.patch; do + patch -p1 <"$i" + done fi ## If sp3config='y' use personal config as a base |