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/wacom.h | |
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/wacom.h')
-rw-r--r-- | drivers/hid/wacom.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/hid/wacom.h b/drivers/hid/wacom.h index 64bc1b296d91..0cc53440543a 100644 --- a/drivers/hid/wacom.h +++ b/drivers/hid/wacom.h | |||
@@ -89,6 +89,7 @@ | |||
89 | #include <linux/slab.h> | 89 | #include <linux/slab.h> |
90 | #include <linux/module.h> | 90 | #include <linux/module.h> |
91 | #include <linux/mod_devicetable.h> | 91 | #include <linux/mod_devicetable.h> |
92 | #include <linux/hid.h> | ||
92 | #include <linux/usb/input.h> | 93 | #include <linux/usb/input.h> |
93 | #include <linux/power_supply.h> | 94 | #include <linux/power_supply.h> |
94 | #include <asm/unaligned.h> | 95 | #include <asm/unaligned.h> |
@@ -143,4 +144,9 @@ int wacom_setup_input_capabilities(struct input_dev *input_dev, | |||
143 | struct wacom_wac *wacom_wac); | 144 | struct wacom_wac *wacom_wac); |
144 | int wacom_setup_pad_input_capabilities(struct input_dev *input_dev, | 145 | int wacom_setup_pad_input_capabilities(struct input_dev *input_dev, |
145 | struct wacom_wac *wacom_wac); | 146 | struct wacom_wac *wacom_wac); |
147 | void wacom_wac_usage_mapping(struct hid_device *hdev, | ||
148 | struct hid_field *field, struct hid_usage *usage); | ||
149 | int wacom_wac_event(struct hid_device *hdev, struct hid_field *field, | ||
150 | struct hid_usage *usage, __s32 value); | ||
151 | void wacom_wac_report(struct hid_device *hdev, struct hid_report *report); | ||
146 | #endif | 152 | #endif |