History

Add virtio-input driver.

virtio-input is basically evdev-events-over-virtio, so this driver isn't much more than reading configuration from config space and forwarding incoming events to the linux input layer.

Gerd Hoffmann committed 11 years ago

Commit 271c8651 parent 2f921b57 files · +479 −0Browse files

Showing the changes to include/uapi (3 of 7 files). Show all

Unified · Split

3 files
  1. include/uapi/linux/Kbuild +1 −0
  2. include/uapi/linux/virtio_ids.h +1 −0
  3. include/uapi/linux/virtio_input.h +76 −0
include/uapi/linux/Kbuild+1−0
@@ -430,6 +430,7 @@ header-y += virtio_blk.h · 429 unmodified lines
430430 header-y += virtio_config.h
431431 header-y += virtio_console.h
432432 header-y += virtio_ids.h
433+header-y += virtio_input.h
433434 header-y += virtio_net.h
434435 header-y += virtio_pci.h
435436 header-y += virtio_ring.h
include/uapi/linux/virtio_ids.h+1−0
@@ -39,5 +39,6 @@ · 38 unmodified lines
3939 #define VIRTIO_ID_9P 9 /* 9p virtio console */
4040 #define VIRTIO_ID_RPROC_SERIAL 11 /* virtio remoteproc serial link */
4141 #define VIRTIO_ID_CAIF 12 /* Virtio caif */
42+#define VIRTIO_ID_INPUT 18 /* virtio input */
4243
4344 #endif /* _LINUX_VIRTIO_IDS_H */
include/uapi/linux/virtio_input.h+76−0
@@ -0,0 +1,76 @@
1+#ifndef _LINUX_VIRTIO_INPUT_H
2+#define _LINUX_VIRTIO_INPUT_H
3+/* This header is BSD licensed so anyone can use the definitions to implement
4+ * compatible drivers/servers.
5+ *
6+ * Redistribution and use in source and binary forms, with or without
7+ * modification, are permitted provided that the following conditions
8+ * are met:
9+ * 1. Redistributions of source code must retain the above copyright
10+ * notice, this list of conditions and the following disclaimer.
11+ * 2. Redistributions in binary form must reproduce the above copyright
12+ * notice, this list of conditions and the following disclaimer in the
13+ * documentation and/or other materials provided with the distribution.
14+ * 3. Neither the name of IBM nor the names of its contributors
15+ * may be used to endorse or promote products derived from this software
16+ * without specific prior written permission.
17+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
20+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL IBM OR
21+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
24+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
27+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28+ * SUCH DAMAGE. */
29+
30+#include <linux/types.h>
31+
32+enum virtio_input_config_select {
33+ VIRTIO_INPUT_CFG_UNSET = 0x00,
34+ VIRTIO_INPUT_CFG_ID_NAME = 0x01,
35+ VIRTIO_INPUT_CFG_ID_SERIAL = 0x02,
36+ VIRTIO_INPUT_CFG_ID_DEVIDS = 0x03,
37+ VIRTIO_INPUT_CFG_PROP_BITS = 0x10,
38+ VIRTIO_INPUT_CFG_EV_BITS = 0x11,
39+ VIRTIO_INPUT_CFG_ABS_INFO = 0x12,
40+};
41+
42+struct virtio_input_absinfo {
43+ __u32 min;
44+ __u32 max;
45+ __u32 fuzz;
46+ __u32 flat;
47+ __u32 res;
48+};
49+
50+struct virtio_input_devids {
51+ __u16 bustype;
52+ __u16 vendor;
53+ __u16 product;
54+ __u16 version;
55+};
56+
57+struct virtio_input_config {
58+ __u8 select;
59+ __u8 subsel;
60+ __u8 size;
61+ __u8 reserved[5];
62+ union {
63+ char string[128];
64+ __u8 bitmap[128];
65+ struct virtio_input_absinfo abs;
66+ struct virtio_input_devids ids;
67+ } u;
68+};
69+
70+struct virtio_input_event {
71+ __le16 type;
72+ __le16 code;
73+ __le32 value;
74+};
75+
76+#endif /* _LINUX_VIRTIO_INPUT_H */

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t