Commit 4392bf33 authored by Benjamin Tissoires's avatar Benjamin Tissoires Committed by Jiri Kosina

HID: fix hid_ignore_special_drivers module parameter

hid_ignore_special_drivers works fine until hid_scan_report autodetects and
reassign devices (for hid-multitouch, hid-microsoft and hid-rmi).

Simplify the handling of the parameter: if it is there, use hid-generic, no
matter what, and if not, scan the device or rely on the hid_have_special_driver
table.

This was detected while trying to disable hid-multitouch on a Surface Pro cover
which prevented to use the keyboard.
Signed-off-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
CC: stable@vger.kernel.org
Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent 5d74325a
...@@ -2661,9 +2661,10 @@ int hid_add_device(struct hid_device *hdev) ...@@ -2661,9 +2661,10 @@ int hid_add_device(struct hid_device *hdev)
/* /*
* Scan generic devices for group information * Scan generic devices for group information
*/ */
if (hid_ignore_special_drivers || if (hid_ignore_special_drivers) {
(!hdev->group && hdev->group = HID_GROUP_GENERIC;
!hid_match_id(hdev, hid_have_special_driver))) { } else if (!hdev->group &&
!hid_match_id(hdev, hid_have_special_driver)) {
ret = hid_scan_report(hdev); ret = hid_scan_report(hdev);
if (ret) if (ret)
hid_warn(hdev, "bad device descriptor (%d)\n", ret); hid_warn(hdev, "bad device descriptor (%d)\n", ret);
......
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