diff options
author | David Herrmann <dh.herrmann@googlemail.com> | 2012-06-10 15:16:25 +0200 |
---|---|---|
committer | Pawit Pornkitprasan <p.pawit@gmail.com> | 2012-12-05 23:04:12 +0700 |
commit | 007067d353ce4b1371f50741dd5ce68ff3956431 (patch) | |
tree | 9d8995a621e4f6b0e43988547708ae2758d20ffc /lib/zlib_inflate | |
parent | b91209fa0aad336817e3694c684cb8eee690025c (diff) | |
download | kernel_samsung_aries-007067d353ce4b1371f50741dd5ce68ff3956431.zip kernel_samsung_aries-007067d353ce4b1371f50741dd5ce68ff3956431.tar.gz kernel_samsung_aries-007067d353ce4b1371f50741dd5ce68ff3956431.tar.bz2 |
HID: uhid: implement feature requests
HID standard allows sending a feature request to the device which is
answered by an HID report. uhid implements this by sending a UHID_FEATURE
event to user-space which then must answer with UHID_FEATURE_ANSWER. If it
doesn't do this in a timely manner, the request is discarded silently.
We serialize the feature requests, that is, there is always only a single
active feature-request sent to user-space, other requests have to wait.
HIDP and USB-HID do it the same way.
Because we discard feature-requests silently, we must make sure to match
a response to the corresponding request. We use sequence-IDs for this so
user-space must copy the ID from the request into the answer.
Feature-answers are ignored if they do not contain the same ID as the
currently pending feature request.
Internally, we must make sure that feature-requests are synchronized with
UHID_DESTROY and close() events. We must not dead-lock when closing the
HID device, either, so we have to use separate locks.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'lib/zlib_inflate')
0 files changed, 0 insertions, 0 deletions