diff options
author | Benjamin Tissoires <benjamin.tissoires@redhat.com> | 2014-09-23 12:08:08 -0400 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2014-10-01 03:11:23 -0400 |
commit | 7704ac937345d4b502062952657027234aa86a37 (patch) | |
tree | f74ae80b7e96d23da461256dde4ec1a57a7968af /drivers/hid/hid-core.c | |
parent | 494078b0bb578c4cf1e00275dd3224d793013488 (diff) |
HID: wacom: implement generic HID handling for pen generic devices
ISDv4 and v5 are plain HID devices. We can directly implement a generic
HID parsing/handling and remove the need to manually add those PID in
the list of supported devices.
This patch implements the pen support only. The finger part will come in
a later patch.
To be properly notified of an .event() and a .report(), we need to force
hid-core to go through the HID parsing. By default, wacom.ko binds only
hidraw, so the hid parsing is not done by hid-core. When a true HID device
is there, we add the flag HID_CLAIMED_DRIVER to hid->claimed which will
force hid-core to parse the incoming reports.
(Note that this can be easily backported by directly setting the .claimed
flag to HID_CLAIMED_DRIVER even if hid-core does not support
HID_CONNECT_DRIVER)
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Acked-by: Jason Gerecke <killertofu@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'drivers/hid/hid-core.c')
-rw-r--r-- | drivers/hid/hid-core.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index 12b6e67d9de0..583344dba3c6 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c | |||
@@ -1591,6 +1591,9 @@ int hid_connect(struct hid_device *hdev, unsigned int connect_mask) | |||
1591 | if ((connect_mask & HID_CONNECT_HIDRAW) && !hidraw_connect(hdev)) | 1591 | if ((connect_mask & HID_CONNECT_HIDRAW) && !hidraw_connect(hdev)) |
1592 | hdev->claimed |= HID_CLAIMED_HIDRAW; | 1592 | hdev->claimed |= HID_CLAIMED_HIDRAW; |
1593 | 1593 | ||
1594 | if (connect_mask & HID_CONNECT_DRIVER) | ||
1595 | hdev->claimed |= HID_CLAIMED_DRIVER; | ||
1596 | |||
1594 | /* Drivers with the ->raw_event callback set are not required to connect | 1597 | /* Drivers with the ->raw_event callback set are not required to connect |
1595 | * to any other listener. */ | 1598 | * to any other listener. */ |
1596 | if (!hdev->claimed && !hdev->driver->raw_event) { | 1599 | if (!hdev->claimed && !hdev->driver->raw_event) { |