Patch "HID: multitouch: do not blindly set EV_KEY or EV_ABS bits" has been added to the 4.12-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
HID: multitouch: do not blindly set EV_KEY or EV_ABS bits
to the 4.12-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
hid-multitouch-do-not-blindly-set-ev_key-or-ev_abs-bits.patch
and it can be found in the queue-4.12 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
4cf56a89c696e66d10612b43b7e95852611e76c2Mon Sep 17 00:00:00 2001
From: Dmitry Torokhov <[email protected]>
Date: Tue, 11 Jul 2017 10:02:18 -0700
Subject: HID: multitouch: do not blindly set EV_KEY or EV_ABS bits
From: Dmitry Torokhov <[email protected]>
commit 4cf56a89c696e66d10612b43b7e95852611e76c2 upstream.
Now that input core insists on having dev->absinfo when device claims to generate EV_ABS in its dev->evbit, we should not be blindly setting that bit.
The code in question might have been needed before input_set_abs_params() started setting EV_ABS in device's evbit, but not anymore, and is now breaking devices such as SMART SPNL-6075 Touchscreen.
--- drivers/hid/hid-multitouch.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-)
drivers/hid/hid-multitouch.c +4 -12
@@ -595,16 +595,6 @@ static int mt_touch_input_mapping(structreturn 0 ; } -static int mt_touch_input_mapped (struct hid_device *hdev,struct hid_input *hi, -struct hid_field *field,struct hid_usage *usage, -unsigned long **bit,int *max) -{ -if (usage->type ==EV_KEY || usage->type ==EV_ABS ) -set_bit (usage->type, hi->input->evbit); - -return -1 ; -} -static int mt_compute_slot (struct mt_device *td,struct input_dev *input) {__s32 quirks = td->mtclass.quirks;
@@ -905,8 +895,10 @@ static int mt_input_mapped(struct hid_dereturn 0 ;if (field->application ==HID_DG_TOUCHSCREEN || - field->application ==HID_DG_TOUCHPAD ) -return mt_touch_input_mapped (hdev, hi, field, usage, bit, max); + field->application ==HID_DG_TOUCHPAD ) { +/* We own these mappings, tell hid-input to ignore them */ +return -1 ; + }/* let hid-core decide for the others */ return 0 ;
Patches currently in stable-queue which might be from [email protected] are
queue-4.12/hid-multitouch-do-not-blindly-set-ev_key-or-ev_abs-bits.patch