diff options
author | Benjamin Tissoires <benjamin.tissoires@redhat.com> | 2016-11-25 14:27:21 +0100 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2016-11-28 14:39:47 +0100 |
commit | 72d19459d7919f966594576bb042d15a451f27ea (patch) | |
tree | 57f4aacfa8709eb1f37dff82d51f49d82aae3363 /include/linux/hid.h | |
parent | 5cc5084dd9afa2f9bf953b0217bdb1b7c2158be1 (diff) | |
download | op-kernel-dev-72d19459d7919f966594576bb042d15a451f27ea.zip op-kernel-dev-72d19459d7919f966594576bb042d15a451f27ea.tar.gz |
HID: input: rework HID_QUIRK_MULTI_INPUT
The purpose of HID_QUIRK_MULTI_INPUT is to have an input device per
report id. This is useful when the HID device presents several HID
collections of different device types.
The current implementation of hid-input creates one input node per id per
type (input or output). This is problematic for the LEDs of a keyboard as
they are often set through an output report. The current code creates
one input node with all the keyboard keys, and one other with only the
LEDs.
To solve this, we use a two-passes way:
- first, we initialize all input nodes and associate one per report id
- then, we register all the input nodes
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'include/linux/hid.h')
-rw-r--r-- | include/linux/hid.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/hid.h b/include/linux/hid.h index b2ec827..596b923 100644 --- a/include/linux/hid.h +++ b/include/linux/hid.h @@ -479,6 +479,7 @@ struct hid_input { struct list_head list; struct hid_report *report; struct input_dev *input; + bool registered; }; enum hid_type { |