forked from Minki/linux
media: vsp1: 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> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
parent
8defd70a9b
commit
4038b214b8
@ -426,8 +426,6 @@ static int histo_v4l2_querycap(struct file *file, void *fh,
|
|||||||
| V4L2_CAP_VIDEO_CAPTURE_MPLANE
|
| V4L2_CAP_VIDEO_CAPTURE_MPLANE
|
||||||
| V4L2_CAP_VIDEO_OUTPUT_MPLANE
|
| V4L2_CAP_VIDEO_OUTPUT_MPLANE
|
||||||
| V4L2_CAP_META_CAPTURE;
|
| V4L2_CAP_META_CAPTURE;
|
||||||
cap->device_caps = V4L2_CAP_META_CAPTURE
|
|
||||||
| V4L2_CAP_STREAMING;
|
|
||||||
|
|
||||||
strscpy(cap->driver, "vsp1", sizeof(cap->driver));
|
strscpy(cap->driver, "vsp1", sizeof(cap->driver));
|
||||||
strscpy(cap->card, histo->video.name, sizeof(cap->card));
|
strscpy(cap->card, histo->video.name, sizeof(cap->card));
|
||||||
@ -556,6 +554,7 @@ int vsp1_histogram_init(struct vsp1_device *vsp1, struct vsp1_histogram *histo,
|
|||||||
histo->video.vfl_type = VFL_TYPE_GRABBER;
|
histo->video.vfl_type = VFL_TYPE_GRABBER;
|
||||||
histo->video.release = video_device_release_empty;
|
histo->video.release = video_device_release_empty;
|
||||||
histo->video.ioctl_ops = &histo_v4l2_ioctl_ops;
|
histo->video.ioctl_ops = &histo_v4l2_ioctl_ops;
|
||||||
|
histo->video.device_caps = V4L2_CAP_META_CAPTURE | V4L2_CAP_STREAMING;
|
||||||
|
|
||||||
video_set_drvdata(&histo->video, histo);
|
video_set_drvdata(&histo->video, histo);
|
||||||
|
|
||||||
|
@ -956,12 +956,6 @@ vsp1_video_querycap(struct file *file, void *fh, struct v4l2_capability *cap)
|
|||||||
| V4L2_CAP_VIDEO_CAPTURE_MPLANE
|
| V4L2_CAP_VIDEO_CAPTURE_MPLANE
|
||||||
| V4L2_CAP_VIDEO_OUTPUT_MPLANE;
|
| V4L2_CAP_VIDEO_OUTPUT_MPLANE;
|
||||||
|
|
||||||
if (video->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE)
|
|
||||||
cap->device_caps = V4L2_CAP_VIDEO_CAPTURE_MPLANE
|
|
||||||
| V4L2_CAP_STREAMING;
|
|
||||||
else
|
|
||||||
cap->device_caps = V4L2_CAP_VIDEO_OUTPUT_MPLANE
|
|
||||||
| V4L2_CAP_STREAMING;
|
|
||||||
|
|
||||||
strscpy(cap->driver, "vsp1", sizeof(cap->driver));
|
strscpy(cap->driver, "vsp1", sizeof(cap->driver));
|
||||||
strscpy(cap->card, video->video.name, sizeof(cap->card));
|
strscpy(cap->card, video->video.name, sizeof(cap->card));
|
||||||
@ -1268,11 +1262,15 @@ struct vsp1_video *vsp1_video_create(struct vsp1_device *vsp1,
|
|||||||
video->type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
|
video->type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
|
||||||
video->pad.flags = MEDIA_PAD_FL_SOURCE;
|
video->pad.flags = MEDIA_PAD_FL_SOURCE;
|
||||||
video->video.vfl_dir = VFL_DIR_TX;
|
video->video.vfl_dir = VFL_DIR_TX;
|
||||||
|
video->video.device_caps = V4L2_CAP_VIDEO_OUTPUT_MPLANE |
|
||||||
|
V4L2_CAP_STREAMING;
|
||||||
} else {
|
} else {
|
||||||
direction = "output";
|
direction = "output";
|
||||||
video->type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
|
video->type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
|
||||||
video->pad.flags = MEDIA_PAD_FL_SINK;
|
video->pad.flags = MEDIA_PAD_FL_SINK;
|
||||||
video->video.vfl_dir = VFL_DIR_RX;
|
video->video.vfl_dir = VFL_DIR_RX;
|
||||||
|
video->video.device_caps = V4L2_CAP_VIDEO_CAPTURE_MPLANE |
|
||||||
|
V4L2_CAP_STREAMING;
|
||||||
}
|
}
|
||||||
|
|
||||||
mutex_init(&video->lock);
|
mutex_init(&video->lock);
|
||||||
|
Loading…
Reference in New Issue
Block a user