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 | |
| 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')
| -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 | ||
