HID: wacom: Fail probe if HID_GENERIC device has unknown device_type
authorJason Gerecke <killertofu@gmail.com>
Fri, 1 May 2015 00:51:55 +0000 (17:51 -0700)
committerJiri Kosina <jkosina@suse.cz>
Mon, 4 May 2015 08:00:23 +0000 (10:00 +0200)
The last patch was careful to maintain backwards-compatible behavior
by forcing device_type to BTN_TOOL_PEN (and printing a warning) if it
were still uninitialized after scanning the HID descriptor and applying
quirks. We should be more strict with HID_GENERIC devices, however,
since there is no a priori guarantee that it is a tablet or touchpad.
If the device_type is still uninitialized for a HID_GENERIC device then
we assume that it isn't something the driver can work with and so fail
the probe.

Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
Reviewed-by: Ping Cheng <pingc@wacom.com>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/wacom_sys.c

index 157aa7aa1067a4b2cff7c527594c58af6da89a3b..7abf52caa8d81000997c3fa6efae8e818ae0764f 100644 (file)
@@ -1528,8 +1528,14 @@ static int wacom_probe(struct hid_device *hdev,
        wacom_setup_device_quirks(wacom);
 
        if (!features->device_type && features->type != WIRELESS) {
+               error = features->type == HID_GENERIC ? -ENODEV : 0;
+
                dev_warn(&hdev->dev, "Unknown device_type for '%s'. %s.",
-                        hdev->name, "Assuming pen");
+                        hdev->name,
+                        error ? "Ignoring" : "Assuming pen");
+
+               if (error)
+                       goto fail_shared_data;
 
                features->device_type = BTN_TOOL_PEN;
        }