Quoting Michael Grzeschik (2022-01-06 22:23:30) > Ccing Nicolas and Kieran. > > BTW: I have some wip patches in my queue to get isoc support running on > the dummy_hcd driver. With those patches, it is easy to test this series > on any system (like qemu) without the need of an actual udc device. > > If interested, I could improve and send them on the list. I would say, Yes please! Being able to test on a virtual device will help in the long run too as automated tests can be set up. And ideally that will then abstract away any hardware / UDC bugs (which I have certainly come up against in the past too, when working on UVC). Thanks Kieran > > Thanks, > Michael > > On Wed, Jan 05, 2022 at 12:55:20PM +0100, Michael Grzeschik wrote: > >This series improves the uvc video gadget by parsing the configfs > >entries. With the configfs data, the driver now is able to negotiate the > >format with the usb host in the kernel and also exports the supported > >frames/formats/intervals via the v4l2 VIDIOC interface. > > > >The uvc userspace stack is also under development. One example is an generic > >v4l2uvcsink gstreamer elemnt, which is currently under duiscussion. [1] > > > >[1] https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1304 > > > >With the libusbgx library [1] used by the gadget-tool [2] it is now also > >possible to fully describe the configfs layout of the uvc gadget with scheme > >files. > > > >[2] https://github.com/linux-usb-gadgets/libusbgx/pull/61/commits/53231c76f9d512f59fdc23b65cd5c46b7fb09eb4 > > > >[3] https://github.com/linux-usb-gadgets/gt/tree/master/examples/systemd > > > >The bigger picture of these patches is to provide a more versatile interface to > >the uvc gadget. The goal is to simply start a uvc-gadget with the following > >commands: > > > >$ gt load uvc.scheme > >$ gst-launch v4l2src ! v4l2uvcsink > > > >-- > > > >v1: https://lore.kernel.org/linux-usb/20210530222239.8793-1-m.grzeschik@xxxxxxxxxxxxxx/ > >v2: https://lore.kernel.org/linux-usb/20211117004432.3763306-1-m.grzeschik@xxxxxxxxxxxxxx/ > >v3: https://lore.kernel.org/linux-usb/20211117122435.2409362-1-m.grzeschik@xxxxxxxxxxxxxx/ > >v4: https://lore.kernel.org/linux-usb/20211205225803.268492-1-m.grzeschik@xxxxxxxxxxxxxx/ > >v5: https://lore.kernel.org/linux-usb/20211209084322.2662616-1-m.grzeschik@xxxxxxxxxxxxxx/ > > > >Regards, > >Michael > > > >Michael Grzeschik (7): > > media: v4l: move helper functions for fractions from uvc to > > v4l2-common > > media: uvcvideo: move uvc_format_desc to common header > > usb: gadget: uvc: prevent index variables to start from 0 > > usb: gadget: uvc: move structs to common header > > usb: gadget: uvc: track frames in format entries > > usb: gadget: uvc: add VIDIOC function > > usb: gadget: uvc: add format/frame handling code > > > > drivers/media/usb/uvc/uvc_ctrl.c | 1 + > > drivers/media/usb/uvc/uvc_driver.c | 281 +------------- > > drivers/media/usb/uvc/uvc_v4l2.c | 14 +- > > drivers/media/usb/uvc/uvcvideo.h | 144 -------- > > drivers/media/v4l2-core/v4l2-common.c | 82 +++++ > > drivers/usb/gadget/function/f_uvc.c | 263 +++++++++++++- > > drivers/usb/gadget/function/uvc.h | 38 +- > > drivers/usb/gadget/function/uvc_configfs.c | 148 ++------ > > drivers/usb/gadget/function/uvc_configfs.h | 120 +++++- > > drivers/usb/gadget/function/uvc_queue.c | 3 +- > > drivers/usb/gadget/function/uvc_v4l2.c | 404 ++++++++++++++++++--- > > drivers/usb/gadget/function/uvc_video.c | 71 +++- > > include/media/v4l2-common.h | 4 + > > include/media/v4l2-uvc.h | 351 ++++++++++++++++++ > > 14 files changed, 1319 insertions(+), 605 deletions(-) > > create mode 100644 include/media/v4l2-uvc.h > > > >-- > >2.30.2 > > > > > > > > -- > Pengutronix e.K. | | > Steuerwalder Str. 21 | http://www.pengutronix.de/ | > 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | > Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |