1, The full picture of this patch set: +---------+ +------------+ +---------------+ |UVC(done)| |virtio(TODO)| |other HW device| +---------+ +------------+ +---------------+ | | | | +------------+ | +------------+camera(done)+-------------+ +----+-------+ | +-----------------+---------------------+ | | | +------+------+ +----+-----+ +------+------+ |builtin(done)| |v4l2(done)| |other drivers| +-------------+ +----------+ +-------------+
With this patch set, We can run a desktop VM (Ex Ubuntu-2004), several camera APPs(cheese, kamoso, guvcview and qcam) work fine. Some works still in working: 1, hot-plug 2, compat with live migration 3, several actions defined in UVC SPEC Zhenwei Pi (5): camera: Introduce camera subsystem and builtin driver camera: v4l2: Introduce v4l2 camera driver usb: Introduce video&mescellaneous usb: allow max 8192 bytes for desc usb-video: Introduce USB video class camera/builtin.c | 717 ++++++++++++++++++++ camera/camera-int.h | 19 + camera/camera.c | 522 +++++++++++++++ camera/meson.build | 20 + camera/trace-events | 28 + camera/trace.h | 1 + camera/v4l2.c | 637 ++++++++++++++++++ hw/usb/Kconfig | 5 + hw/usb/desc.c | 15 +- hw/usb/desc.h | 1 + hw/usb/dev-video.c | 1395 +++++++++++++++++++++++++++++++++++++++ hw/usb/meson.build | 1 + hw/usb/trace-events | 11 + include/camera/camera.h | 238 +++++++ include/hw/usb.h | 2 + include/hw/usb/video.h | 303 +++++++++ meson.build | 20 +- meson_options.txt | 3 + qapi/camera.json | 101 +++ qapi/meson.build | 1 + qapi/qapi-schema.json | 1 + qemu-options.hx | 13 + softmmu/vl.c | 4 + 23 files changed, 4050 insertions(+), 8 deletions(-) create mode 100644 camera/builtin.c create mode 100644 camera/camera-int.h create mode 100644 camera/camera.c create mode 100644 camera/meson.build create mode 100644 camera/trace-events create mode 100644 camera/trace.h create mode 100644 camera/v4l2.c create mode 100644 hw/usb/dev-video.c create mode 100644 include/camera/camera.h create mode 100644 include/hw/usb/video.h create mode 100644 qapi/camera.json -- 2.25.1