diff options
author | Benjamin Tissoires <benjamin.tissoires@redhat.com> | 2015-03-05 17:36:54 -0500 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2015-03-16 20:18:20 +0100 |
commit | 5fcad167315f224eaf6750b0fb85ee6c92f087cd (patch) | |
tree | 143318838d56f88253e8c40e81f004d119d65850 /drivers/hid/wacom_sys.c | |
parent | 71fa641ebbfd2402bdb76d3c6ba7e4a2d1eb2dfc (diff) | |
download | op-kernel-dev-5fcad167315f224eaf6750b0fb85ee6c92f087cd.zip op-kernel-dev-5fcad167315f224eaf6750b0fb85ee6c92f087cd.tar.gz |
HID: wacom: ask for a in-prox report when it was missed
If noone listens to the input device when a tool comes in proximity,
the tablet does not send the in-prox event when a client becomes available.
That means that no events will be sent until the tool is taken out of
proximity.
In this situation, ask for the report WACOM_REPORT_INTUOSREAD which will
read the corresponding feature and generate an in-prox event.
To make some generation of hardware working, we need to unset the
quirk NO_GET set by hid-core because the interfaces are seen as "boot
mouse".
We don't schedule this read in a worker while we are in an IO interrupt.
We know that usbhid will do it asynchronously. If this is triggered by
uhid, then this is obviously a client side bug :)
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_sys.c')
-rw-r--r-- | drivers/hid/wacom_sys.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/hid/wacom_sys.c b/drivers/hid/wacom_sys.c index ab7bf84..353fe47 100644 --- a/drivers/hid/wacom_sys.c +++ b/drivers/hid/wacom_sys.c @@ -1408,6 +1408,9 @@ static int wacom_probe(struct hid_device *hdev, hdev->quirks |= HID_QUIRK_NO_INIT_REPORTS; + /* hid-core sets this quirk for the boot interface */ + hdev->quirks &= ~HID_QUIRK_NOGET; + wacom = kzalloc(sizeof(struct wacom), GFP_KERNEL); if (!wacom) return -ENOMEM; |