Hi Hans, Thank you for the patch. On Tue, Jun 04, 2019 at 01:19:55PM +0200, Hans Verkuil wrote: > Instead of filling in the struct v4l2_capability device_caps > field, fill in the struct video_device device_caps field. > > That way the V4L2 core knows what the capabilities of the > video device are. > > But this only really works if all drivers use this, so convert > this UVC gadget driver. > > Signed-off-by: Hans Verkuil <hverkuil-cisco@xxxxxxxxx> > Cc: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> I have no patch for the UVC gadget driver for the next merge window, so feel free to merge this through the Linux media tree if Felipe is fine with this. > --- > drivers/usb/gadget/function/f_uvc.c | 1 + > drivers/usb/gadget/function/uvc_v4l2.c | 4 ---- > 2 files changed, 1 insertion(+), 4 deletions(-) > > diff --git a/drivers/usb/gadget/function/f_uvc.c b/drivers/usb/gadget/function/f_uvc.c > index 8c99392df593..fb0a892687c0 100644 > --- a/drivers/usb/gadget/function/f_uvc.c > +++ b/drivers/usb/gadget/function/f_uvc.c > @@ -423,6 +423,7 @@ uvc_register_video(struct uvc_device *uvc) > uvc->vdev.release = video_device_release_empty; > uvc->vdev.vfl_dir = VFL_DIR_TX; > uvc->vdev.lock = &uvc->video.mutex; > + uvc->vdev.device_caps = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING; > strlcpy(uvc->vdev.name, cdev->gadget->name, sizeof(uvc->vdev.name)); > > video_set_drvdata(&uvc->vdev, uvc); > diff --git a/drivers/usb/gadget/function/uvc_v4l2.c b/drivers/usb/gadget/function/uvc_v4l2.c > index a1183eccee22..495f0ec663ea 100644 > --- a/drivers/usb/gadget/function/uvc_v4l2.c > +++ b/drivers/usb/gadget/function/uvc_v4l2.c > @@ -71,10 +71,6 @@ uvc_v4l2_querycap(struct file *file, void *fh, struct v4l2_capability *cap) > strlcpy(cap->card, cdev->gadget->name, sizeof(cap->card)); > strlcpy(cap->bus_info, dev_name(&cdev->gadget->dev), > sizeof(cap->bus_info)); > - > - cap->device_caps = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING; > - cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS; > - > return 0; > } > -- Regards, Laurent Pinchart