[PATCH 0/5] Introduce camera subsystem and USB video device

zhenwei pi posted 5 patches 2 years, 4 months ago
Test checkpatch failed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20211227142734.691900-1-pizhenwei@bytedance.com
Maintainers: Markus Armbruster <armbru@redhat.com>, Michael Roth <michael.roth@amd.com>, Eric Blake <eblake@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, Gerd Hoffmann <kraxel@redhat.com>
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
[PATCH 0/5] Introduce camera subsystem and USB video device
Posted by zhenwei pi 2 years, 4 months ago
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


Re: [PATCH 0/5] Introduce camera subsystem and USB video device
Posted by Daniel P. Berrangé 2 years, 4 months ago
On Mon, Dec 27, 2021 at 10:27:29PM +0800, zhenwei pi wrote:
> 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 +

There's no MAINTAINERS file update here.

As a general rule, if you are introducing an entire new subsystem
into the QEMU codebase, it is expected someone will be nominated
as the maintainer for the new subsystem. Usually the person adding
it will themselves volunteer to be the maintainer.

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|


Re: Re: [PATCH 0/5] Introduce camera subsystem and USB video device
Posted by zhenwei pi 2 years, 4 months ago
On 1/4/22 9:39 PM, Daniel P. Berrangé wrote:
> On Mon, Dec 27, 2021 at 10:27:29PM +0800, zhenwei pi wrote:
>> 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 +
> 
> There's no MAINTAINERS file update here.
> 
> As a general rule, if you are introducing an entire new subsystem
> into the QEMU codebase, it is expected someone will be nominated
> as the maintainer for the new subsystem. Usually the person adding
> it will themselves volunteer to be the maintainer.
> 
> Regards,
> Daniel
> 
OK, thanks. I have a plan to add two parts in next version:
1, camera subsystem, include folder qemu/camera and qemu/include/camera/
2, UVC, include qemu/hw/usb/dev-video.c and qemu/include/hw/usb/video.h


-- 
zhenwei pi