HID: rmi: fallback to generic/multitouch if hid-rmi is not built
authorJiri Kosina <jkosina@suse.cz>
Wed, 22 Feb 2017 00:13:52 +0000 (01:13 +0100)
committerJiri Kosina <jkosina@suse.cz>
Wed, 22 Feb 2017 00:13:52 +0000 (01:13 +0100)
Commit 279967a65b32 ("HID: rmi: Handle all Synaptics touchpads using hid-rmi")
unconditionally switches over handling of all Synaptics touchpads to hid-rmi
(to make use of extended features of the HW); in case CONFIG_HID_RMI is
disabled though this renders the touchpad unusable, as the

HID_DEVICE(HID_BUS_ANY, HID_GROUP_RMI, HID_ANY_ID, HID_ANY_ID)

match doesn't exist and generic/multitouch doesn't bind to it either (due
to hid group mismatch).

Fix this by switching over to hid-rmi only if it has been actually built.

Fixes: 279967a65b32 ("HID: rmi: Handle all Synaptics touchpads using hid-rmi")
Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Acked-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Tested-by: Andrew Duggan <aduggan@synaptics.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-core.c

index 538ff697a4cfe28bb27a8c1c7e87391c7d894415..e9e87d337446918f672771551f41041755d83d22 100644 (file)
@@ -827,7 +827,8 @@ static int hid_scan_report(struct hid_device *hid)
                                 * hid-rmi should take care of them,
                                 * not hid-generic
                                 */
-                               hid->group = HID_GROUP_RMI;
+                               if (IS_ENABLED(CONFIG_HID_RMI))
+                                       hid->group = HID_GROUP_RMI;
                break;
        }