Pull HID updates from Jiri Kosina: - substantial cleanup of the generic and transport layers, in the direction of an ultimate goal of making struct hid_device completely transport independent, by Benjamin Tissoires - cp2112 driver from David Barksdale - a lot of fixes and new hardware support (Dualshock 4) to hid-sony driver, by Frank Praznik - support for Win 8.1 multitouch protocol by Andrew Duggan - other smaller fixes / device ID additions * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (75 commits) HID: sony: fix force feedback mismerge HID: sony: Set the quriks flag for Bluetooth controllers HID: sony: Fix Sixaxis cable state detection HID: uhid: Add UHID_CREATE2 + UHID_INPUT2 HID: hyperv: fix _raw_request() prototype HID: hyperv: Implement a stub raw_request() entry point HID: hid-sensor-hub: fix sleeping function called from invalid context HID: multitouch: add support for Win 8.1 multitouch touchpads HID: remove hid_output_raw_report transport implementations HID: sony: do not rely on hid_output_raw_report HID: cp2112: remove the last hid_output_raw_report() call HID: cp2112: remove various hid_out_raw_report calls HID: multitouch: add support of other generic collections in hid-mt HID: multitouch: remove pen special handling HID: multitouch: remove registered devices with default behavior HID: hidp: Add a comment that some devices depend on the current behavior of uniq HID: sony: Prevent duplicate controller connections. HID: sony: Perform a boundry check on the sixaxis battery level index. HID: sony: Fix work queue issues HID: sony: Fix multi-line comment styling ...
Showing the changes to include/uapi/linux (1 of 29 files). Show all
Unified · Split
| @@ -21,6 +21,7 @@ · 20 unmodified lines | ||
| 21 | 21 | |
| 22 | 22 | #include <linux/input.h> |
| 23 | 23 | #include <linux/types.h> |
| 24 | +#include <linux/hid.h> | |
| 24 | 25 | |
| 25 | 26 | enum uhid_event_type { |
| 26 | 27 | UHID_CREATE, |
| @@ -34,6 +35,8 @@ enum uhid_event_type { · 7 unmodified lines | ||
| 34 | 35 | UHID_INPUT, |
| 35 | 36 | UHID_FEATURE, |
| 36 | 37 | UHID_FEATURE_ANSWER, |
| 38 | + UHID_CREATE2, | |
| 39 | + UHID_INPUT2, | |
| 37 | 40 | }; |
| 38 | 41 | |
| 39 | 42 | struct uhid_create_req { |
| @@ -50,6 +53,19 @@ struct uhid_create_req { · 10 unmodified lines | ||
| 50 | 53 | __u32 country; |
| 51 | 54 | } __attribute__((__packed__)); |
| 52 | 55 | |
| 56 | +struct uhid_create2_req { | |
| 57 | + __u8 name[128]; | |
| 58 | + __u8 phys[64]; | |
| 59 | + __u8 uniq[64]; | |
| 60 | + __u16 rd_size; | |
| 61 | + __u16 bus; | |
| 62 | + __u32 vendor; | |
| 63 | + __u32 product; | |
| 64 | + __u32 version; | |
| 65 | + __u32 country; | |
| 66 | + __u8 rd_data[HID_MAX_DESCRIPTOR_SIZE]; | |
| 67 | +} __attribute__((__packed__)); | |
| 68 | + | |
| 53 | 69 | #define UHID_DATA_MAX 4096 |
| 54 | 70 | |
| 55 | 71 | enum uhid_report_type { |
| @@ -63,6 +79,11 @@ struct uhid_input_req { · 7 unmodified lines | ||
| 63 | 79 | __u16 size; |
| 64 | 80 | } __attribute__((__packed__)); |
| 65 | 81 | |
| 82 | +struct uhid_input2_req { | |
| 83 | + __u16 size; | |
| 84 | + __u8 data[UHID_DATA_MAX]; | |
| 85 | +} __attribute__((__packed__)); | |
| 86 | + | |
| 66 | 87 | struct uhid_output_req { |
| 67 | 88 | __u8 data[UHID_DATA_MAX]; |
| 68 | 89 | __u16 size; |
| @@ -100,6 +121,8 @@ struct uhid_event { · 31 unmodified lines | ||
| 100 | 121 | struct uhid_output_ev_req output_ev; |
| 101 | 122 | struct uhid_feature_req feature; |
| 102 | 123 | struct uhid_feature_answer_req feature_answer; |
| 124 | + struct uhid_create2_req create2; | |
| 125 | + struct uhid_input2_req input2; | |
| 103 | 126 | } u; |
| 104 | 127 | } __attribute__((__packed__)); |
| 105 | 128 | |