diff options
author | David Herrmann <dh.herrmann@gmail.com> | 2014-07-29 11:14:25 -0400 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2014-08-25 04:28:08 -0400 |
commit | c2b2f16c5c62583d4f8904e44c4b30c94a01eaf1 (patch) | |
tree | 72ff984b458a6ff721a67a062fc11fe6c9548a26 /include/uapi/linux/uhid.h | |
parent | 11c221553080408b203a00b91ad5f647dfb218d1 (diff) |
HID: uhid: report to user-space whether reports are numbered
This makes UHID_START include a "dev_flags" field that describes details
of the hid-device in the kernel. The first flags we introduce describe
whether a given report-type uses numbered reports. This is useful for
transport layers that force report-numbers and therefore might have to
prefix kernel-provided HID-messages with the report-number.
Currently, only HoG needs this and the spec only talks about "global
report numbers". That is, it's a global boolean not a per-type boolean.
However, given the quirks we already have in kernel-space, a per-type
value seems much more appropriate.
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'include/uapi/linux/uhid.h')
-rw-r--r-- | include/uapi/linux/uhid.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/uapi/linux/uhid.h b/include/uapi/linux/uhid.h index 62aac0e4edf3..aaa86d6bd1dd 100644 --- a/include/uapi/linux/uhid.h +++ b/include/uapi/linux/uhid.h | |||
@@ -54,6 +54,16 @@ struct uhid_create2_req { | |||
54 | __u8 rd_data[HID_MAX_DESCRIPTOR_SIZE]; | 54 | __u8 rd_data[HID_MAX_DESCRIPTOR_SIZE]; |
55 | } __attribute__((__packed__)); | 55 | } __attribute__((__packed__)); |
56 | 56 | ||
57 | enum uhid_dev_flag { | ||
58 | UHID_DEV_NUMBERED_FEATURE_REPORTS = (1ULL << 0), | ||
59 | UHID_DEV_NUMBERED_OUTPUT_REPORTS = (1ULL << 1), | ||
60 | UHID_DEV_NUMBERED_INPUT_REPORTS = (1ULL << 2), | ||
61 | }; | ||
62 | |||
63 | struct uhid_start_req { | ||
64 | __u64 dev_flags; | ||
65 | }; | ||
66 | |||
57 | #define UHID_DATA_MAX 4096 | 67 | #define UHID_DATA_MAX 4096 |
58 | 68 | ||
59 | enum uhid_report_type { | 69 | enum uhid_report_type { |
@@ -182,6 +192,7 @@ struct uhid_event { | |||
182 | struct uhid_input2_req input2; | 192 | struct uhid_input2_req input2; |
183 | struct uhid_set_report_req set_report; | 193 | struct uhid_set_report_req set_report; |
184 | struct uhid_set_report_reply_req set_report_reply; | 194 | struct uhid_set_report_reply_req set_report_reply; |
195 | struct uhid_start_req start; | ||
185 | } u; | 196 | } u; |
186 | } __attribute__((__packed__)); | 197 | } __attribute__((__packed__)); |
187 | 198 | ||