This patch series adds virtio input devices. It's basically sending linux evdev events over virtio. There is support for emulated hid devices (i.e. send usual input to virtio device instead of usb or ps2 device) and for evdev device pass-through.
This depends on mst's virtio-1.0 patches. Changes in v3: * sync header with v5 of the kernel driver patch. [ there was a abi change, testing this series requires v5 of the kernel patch, the branch below is up-to-date too ] * minor tweaks. Changes in v2: * sync header files from linux & use them. * added virtio_input_devids struct, pass device ids from host (requested on guest driver review). Guest driver: https://www.kraxel.org/cgit/linux/log/?h=virtio-input Specification (slightly outdated, latest changes from kernel driver review not added yet): https://www.kraxel.org/cgit/virtio-spec/log/?h=virtio-input https://www.kraxel.org/virtio/virtio-v1.0-csprd03-virtio-input.html#x1-2640007 Gerd Hoffmann (6): pci: add PCI_CLASS_INPUT_* virtio-input: add virtio_input.h virtio-input: add linux/input.h virtio-input: core code & base class virtio-input: emulated devices virtio-input: evdev passthrough hw/input/Makefile.objs | 6 + hw/input/virtio-input-hid.c | 502 +++++++++++ hw/input/virtio-input-host.c | 182 ++++ hw/input/virtio-input.c | 282 ++++++ hw/virtio/virtio-pci.c | 150 ++++ hw/virtio/virtio-pci.h | 37 + include/hw/pci/pci_ids.h | 7 + include/hw/virtio/virtio-input.h | 118 +++ include/hw/virtio/virtio.h | 1 + include/standard-headers/linux/input.h | 1198 +++++++++++++++++++++++++ include/standard-headers/linux/virtio_ids.h | 1 + include/standard-headers/linux/virtio_input.h | 76 ++ scripts/update-linux-headers.sh | 4 +- 13 files changed, 2563 insertions(+), 1 deletion(-) create mode 100644 hw/input/virtio-input-hid.c create mode 100644 hw/input/virtio-input-host.c create mode 100644 hw/input/virtio-input.c create mode 100644 include/hw/virtio/virtio-input.h create mode 100644 include/standard-headers/linux/input.h create mode 100644 include/standard-headers/linux/virtio_input.h -- 1.8.3.1