summaryrefslogtreecommitdiffstats
path: root/drivers/hid
diff options
context:
space:
mode:
authorJason Gerecke <killertofu@gmail.com>2015-04-30 17:51:55 -0700
committerJiri Kosina <jkosina@suse.cz>2015-05-04 10:00:23 +0200
commit8e116d3169cc2b93b7eb2f44dc021a93cd3d5308 (patch)
tree3263e6e65bb02007ae9d96e8e81d1dd59e0775b9 /drivers/hid
parent042628abd59c9a034797bd3083f806fa17cda62d (diff)
downloadlinux-stable-8e116d3169cc2b93b7eb2f44dc021a93cd3d5308.tar.gz
linux-stable-8e116d3169cc2b93b7eb2f44dc021a93cd3d5308.tar.bz2
linux-stable-8e116d3169cc2b93b7eb2f44dc021a93cd3d5308.zip
HID: wacom: Fail probe if HID_GENERIC device has unknown device_type
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>
Diffstat (limited to 'drivers/hid')
-rw-r--r--drivers/hid/wacom_sys.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/hid/wacom_sys.c b/drivers/hid/wacom_sys.c
index 157aa7aa1067..7abf52caa8d8 100644
--- a/drivers/hid/wacom_sys.c
+++ b/drivers/hid/wacom_sys.c
@@ -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;
}