media: omap3isp: set device_caps in struct video_device
authorHans Verkuil <hverkuil-cisco@xs4all.nl>
Wed, 26 Jun 2019 07:17:47 +0000 (03:17 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Mon, 22 Jul 2019 19:10:43 +0000 (15:10 -0400)
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.

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/platform/omap3isp/ispvideo.c

index 499a728..b52c6fe 100644 (file)
@@ -658,10 +658,6 @@ isp_video_querycap(struct file *file, void *fh, struct v4l2_capability *cap)
        cap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_OUTPUT
                | V4L2_CAP_STREAMING | V4L2_CAP_DEVICE_CAPS;
 
-       if (video->type == V4L2_BUF_TYPE_VIDEO_CAPTURE)
-               cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING;
-       else
-               cap->device_caps = V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_STREAMING;
 
        return 0;
 }
@@ -1460,6 +1456,13 @@ int omap3isp_video_init(struct isp_video *video, const char *name)
        video->video.vfl_type = VFL_TYPE_GRABBER;
        video->video.release = video_device_release_empty;
        video->video.ioctl_ops = &isp_video_ioctl_ops;
+       if (video->type == V4L2_BUF_TYPE_VIDEO_CAPTURE)
+               video->video.device_caps = V4L2_CAP_VIDEO_CAPTURE
+                                        | V4L2_CAP_STREAMING;
+       else
+               video->video.device_caps = V4L2_CAP_VIDEO_OUTPUT
+                                        | V4L2_CAP_STREAMING;
+
        video->pipe.stream_state = ISP_PIPELINE_STREAM_STOPPED;
 
        video_set_drvdata(&video->video, video);