OSDN Git Service

media: uvcvideo: Set capability in s_param
authorRicardo Ribalda <ribalda@chromium.org>
Fri, 18 Jun 2021 12:29:08 +0000 (14:29 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Thu, 30 Sep 2021 08:07:47 +0000 (10:07 +0200)
Fixes v4l2-compliance:

Format ioctls (Input 0):
                warn: v4l2-test-formats.cpp(1339): S_PARM is supported but doesn't report V4L2_CAP_TIMEPERFRAME
                fail: v4l2-test-formats.cpp(1241): node->has_frmintervals && !cap->capability

Reviewed-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/usb/uvc/uvc_v4l2.c

index ff97510..60e3ac6 100644 (file)
@@ -472,10 +472,13 @@ static int uvc_v4l2_set_streamparm(struct uvc_streaming *stream,
        uvc_simplify_fraction(&timeperframe.numerator,
                &timeperframe.denominator, 8, 333);
 
-       if (parm->type == V4L2_BUF_TYPE_VIDEO_CAPTURE)
+       if (parm->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) {
                parm->parm.capture.timeperframe = timeperframe;
-       else
+               parm->parm.capture.capability = V4L2_CAP_TIMEPERFRAME;
+       } else {
                parm->parm.output.timeperframe = timeperframe;
+               parm->parm.output.capability = V4L2_CAP_TIMEPERFRAME;
+       }
 
        return 0;
 }