diff options
author | Jason Gerecke <killertofu@gmail.com> | 2014-11-25 00:32:12 +0100 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2014-11-27 14:45:25 +0100 |
commit | c376e7167e0ff390e07d60b4320398c3baae72a6 (patch) | |
tree | d7dbf71096ab60c27b59ec1152d0724a228e2691 /drivers/hid | |
parent | HID: wacom: PAD is independent with pen/touch (diff) | |
download | linux-c376e7167e0ff390e07d60b4320398c3baae72a6.tar.xz linux-c376e7167e0ff390e07d60b4320398c3baae72a6.zip |
HID: wacom: Consult the application usage when determining field type
It is not necessarily sufficient to look only at the physical and logical
usages when determining if a field is for the pen or touch. Some fields
are not contained in a sub-collection and thus only have an application
usage. Not checking the application usage in such cases causes us to
ignore the field entirely, which may lead to incorrect behavior.
Signed-off-by: Jason Gerecke <killertofu@gmail.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_wac.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c index 9565d31262ec..1468f008bfbd 100644 --- a/drivers/hid/wacom_wac.c +++ b/drivers/hid/wacom_wac.c @@ -1484,9 +1484,11 @@ static void wacom_wac_finger_report(struct hid_device *hdev, } #define WACOM_PEN_FIELD(f) (((f)->logical == HID_DG_STYLUS) || \ - ((f)->physical == HID_DG_STYLUS)) + ((f)->physical == HID_DG_STYLUS) || \ + ((f)->application == HID_DG_PEN)) #define WACOM_FINGER_FIELD(f) (((f)->logical == HID_DG_FINGER) || \ - ((f)->physical == HID_DG_FINGER)) + ((f)->physical == HID_DG_FINGER) || \ + ((f)->application == HID_DG_TOUCHSCREEN)) void wacom_wac_usage_mapping(struct hid_device *hdev, struct hid_field *field, struct hid_usage *usage) |