Lines Matching +full:multiple +full:- +full:channel
2 UHID - User-space I/O driver support for HID subsystem
5 UHID allows user-space to implement HID transport drivers. Please see
6 hid-transport.rst for an introduction into HID transport drivers. This document
9 With UHID, a user-space transport driver can create kernel hid-devices for each
10 device connected to the user-space controlled bus. The UHID API defines the I/O
11 events provided from the kernel to user-space and vice versa.
13 There is an example user-space application in ./samples/uhid/uhid-example.c
16 ------------
18 UHID is accessed through a character misc-device. The minor number is allocated
25 write()'ing "struct uhid_event" objects. Non-blocking operations are supported
39 payloads are sent. You must not split a single event across multiple read()'s or
40 multiple write()'s. A single event must always be sent as a whole. Furthermore,
42 If you want to handle multiple events in a single syscall, then use vectored
45 payload-structure available in the union "u" (except for empty payloads). This
56 reference-counting in user-space. That is, you will never receive multiple
58 ref-counting for you.
62 If you want to send data on the interrupt channel to the HID subsystem, you send
64 on the interrupt channel to the device, you will read a UHID_OUTPUT event.
65 Data requests on the control channel are currently limited to GET_REPORT and
66 SET_REPORT (no other data reports on the control channel are defined so far).
69 the device on the control channel. Once the device responds, you must forward
71 The kernel blocks internal driver-execution during such round-trips (times out
72 after a hard-coded period).
81 -------
84 not supported, it will return -EOPNOTSUPP. If the payload is invalid, then
85 -EINVAL is returned, otherwise, the amount of data that was read is returned and
87 writes are always handled immediately in a non-blocking fashion. Future requests
104 contains a data-payload. This is the raw data that you read from your device
105 on the interrupt channel. The kernel will parse the HID reports.
120 ------
132 - UHID_DEV_NUMBERED_FEATURE_REPORTS
133 - UHID_DEV_NUMBERED_OUTPUT_REPORTS
134 - UHID_DEV_NUMBERED_INPUT_REPORTS
136 Each of these flags defines whether a given report-type uses numbered
138 the kernel already have the report-number as prefix. Otherwise, no
140 For messages sent by user-space to the kernel, you must adjust the
157 it is useful for power-management. As long as you haven't received this event
167 device on the interrupt channel. You should read the payload and forward it to
173 on the control channel as described in the HID specs. The report-type and
174 report-number are available in the payload.
183 never re-used, so conflicts cannot happen.
191 ----------------------------------------------------