media: s3c-camif/s5p-g2d/s5p-jpeg: set device_caps in struct video_device
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> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
parent
e7999846b9
commit
994587c3b2
@ -641,10 +641,6 @@ static int s3c_camif_vidioc_querycap(struct file *file, void *priv,
|
||||
strscpy(cap->card, S3C_CAMIF_DRIVER_NAME, sizeof(cap->card));
|
||||
snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s.%d",
|
||||
dev_name(vp->camif->dev), vp->id);
|
||||
|
||||
cap->device_caps = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_CAPTURE;
|
||||
cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1160,6 +1156,7 @@ int s3c_camif_register_video_node(struct camif_dev *camif, int idx)
|
||||
goto err_me_cleanup;
|
||||
|
||||
vfd->ctrl_handler = &vp->ctrl_handler;
|
||||
vfd->device_caps = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_CAPTURE;
|
||||
|
||||
ret = video_register_device(vfd, VFL_TYPE_GRABBER, -1);
|
||||
if (ret)
|
||||
|
@ -291,8 +291,6 @@ static int vidioc_querycap(struct file *file, void *priv,
|
||||
strscpy(cap->driver, G2D_NAME, sizeof(cap->driver));
|
||||
strscpy(cap->card, G2D_NAME, sizeof(cap->card));
|
||||
cap->bus_info[0] = 0;
|
||||
cap->device_caps = V4L2_CAP_VIDEO_M2M | V4L2_CAP_STREAMING;
|
||||
cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -696,6 +694,7 @@ static int g2d_probe(struct platform_device *pdev)
|
||||
set_bit(V4L2_FL_QUIRK_INVERTED_CROP, &vfd->flags);
|
||||
vfd->lock = &dev->mutex;
|
||||
vfd->v4l2_dev = &dev->v4l2_dev;
|
||||
vfd->device_caps = V4L2_CAP_VIDEO_M2M | V4L2_CAP_STREAMING;
|
||||
ret = video_register_device(vfd, VFL_TYPE_GRABBER, 0);
|
||||
if (ret) {
|
||||
v4l2_err(&dev->v4l2_dev, "Failed to register video device\n");
|
||||
|
@ -1259,8 +1259,6 @@ static int s5p_jpeg_querycap(struct file *file, void *priv,
|
||||
}
|
||||
snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
|
||||
dev_name(ctx->jpeg->dev));
|
||||
cap->device_caps = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_M2M;
|
||||
cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -2947,6 +2945,7 @@ static int s5p_jpeg_probe(struct platform_device *pdev)
|
||||
jpeg->vfd_encoder->lock = &jpeg->lock;
|
||||
jpeg->vfd_encoder->v4l2_dev = &jpeg->v4l2_dev;
|
||||
jpeg->vfd_encoder->vfl_dir = VFL_DIR_M2M;
|
||||
jpeg->vfd_encoder->device_caps = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_M2M;
|
||||
|
||||
ret = video_register_device(jpeg->vfd_encoder, VFL_TYPE_GRABBER, -1);
|
||||
if (ret) {
|
||||
@ -2976,6 +2975,7 @@ static int s5p_jpeg_probe(struct platform_device *pdev)
|
||||
jpeg->vfd_decoder->lock = &jpeg->lock;
|
||||
jpeg->vfd_decoder->v4l2_dev = &jpeg->v4l2_dev;
|
||||
jpeg->vfd_decoder->vfl_dir = VFL_DIR_M2M;
|
||||
jpeg->vfd_decoder->device_caps = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_M2M;
|
||||
|
||||
ret = video_register_device(jpeg->vfd_decoder, VFL_TYPE_GRABBER, -1);
|
||||
if (ret) {
|
||||
|
Loading…
Reference in New Issue
Block a user