media: vim2m/vicodec: set device_caps in video_device struct
authorHans Verkuil <hverkuil@xs4all.nl>
Thu, 15 Nov 2018 08:16:22 +0000 (03:16 -0500)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Fri, 23 Nov 2018 09:34:22 +0000 (04:34 -0500)
Instead of setting device_caps/capabilities in the querycap ioctl, set
it in struct video_device instead.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/platform/vicodec/vicodec-core.c
drivers/media/platform/vim2m.c

index b292cff26c8663636a3cc959688032c8d79e6b3d..9b6416ba59011889f7b5f54fec9abca603f573d6 100644 (file)
@@ -397,11 +397,6 @@ static int vidioc_querycap(struct file *file, void *priv,
        strncpy(cap->card, VICODEC_NAME, sizeof(cap->card) - 1);
        snprintf(cap->bus_info, sizeof(cap->bus_info),
                        "platform:%s", VICODEC_NAME);
-       cap->device_caps =  V4L2_CAP_STREAMING |
-                           (multiplanar ?
-                            V4L2_CAP_VIDEO_M2M_MPLANE :
-                            V4L2_CAP_VIDEO_M2M);
-       cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
        return 0;
 }
 
@@ -1311,6 +1306,8 @@ static int vicodec_probe(struct platform_device *pdev)
        vfd->lock = &dev->enc_mutex;
        vfd->v4l2_dev = &dev->v4l2_dev;
        strscpy(vfd->name, "vicodec-enc", sizeof(vfd->name));
+       vfd->device_caps = V4L2_CAP_STREAMING |
+               (multiplanar ? V4L2_CAP_VIDEO_M2M_MPLANE : V4L2_CAP_VIDEO_M2M);
        v4l2_disable_ioctl(vfd, VIDIOC_DECODER_CMD);
        v4l2_disable_ioctl(vfd, VIDIOC_TRY_DECODER_CMD);
        video_set_drvdata(vfd, dev);
@@ -1327,6 +1324,8 @@ static int vicodec_probe(struct platform_device *pdev)
        vfd = &dev->dec_vfd;
        vfd->lock = &dev->dec_mutex;
        vfd->v4l2_dev = &dev->v4l2_dev;
+       vfd->device_caps = V4L2_CAP_STREAMING |
+               (multiplanar ? V4L2_CAP_VIDEO_M2M_MPLANE : V4L2_CAP_VIDEO_M2M);
        strscpy(vfd->name, "vicodec-dec", sizeof(vfd->name));
        v4l2_disable_ioctl(vfd, VIDIOC_ENCODER_CMD);
        v4l2_disable_ioctl(vfd, VIDIOC_TRY_ENCODER_CMD);
index d82db738f174ef048d663d366b4950cd732c2b43..035c7b7c8d876a7f4fc52138f88dfae11ebbdb4d 100644 (file)
@@ -438,8 +438,6 @@ static int vidioc_querycap(struct file *file, void *priv,
        strncpy(cap->card, MEM2MEM_NAME, sizeof(cap->card) - 1);
        snprintf(cap->bus_info, sizeof(cap->bus_info),
                        "platform:%s", MEM2MEM_NAME);
-       cap->device_caps = V4L2_CAP_VIDEO_M2M | V4L2_CAP_STREAMING;
-       cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
        return 0;
 }
 
@@ -999,6 +997,7 @@ static const struct video_device vim2m_videodev = {
        .ioctl_ops      = &vim2m_ioctl_ops,
        .minor          = -1,
        .release        = video_device_release_empty,
+       .device_caps    = V4L2_CAP_VIDEO_M2M | V4L2_CAP_STREAMING,
 };
 
 static const struct v4l2_m2m_ops m2m_ops = {