summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorYauhen Kharuzhy <y.kharuzhy@sam-solutions.net>2013-01-05 17:35:25 +0300
committerJustin Waters <justin.waters@timesys.com>2013-11-07 12:19:20 -0500
commit107ad458d47e7470279a36584a9bf331f192e090 (patch)
tree03fd915d5ca0a25dc7d2b553b1640f4fc324a741 /drivers
parent363af904593da3ae4831efe1d54d4e34e57db9b0 (diff)
mxc_v4l2_capture: Add ioctls handlers for overlay function
Signed-off-by: Yauhen Kharuzhy <y.kharuzhy@sam-solutions.net> Signed-off-by: Christian Hemp <c.hemp@phytec.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/media/video/mxc/capture/mxc_v4l2_capture.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/drivers/media/video/mxc/capture/mxc_v4l2_capture.c b/drivers/media/video/mxc/capture/mxc_v4l2_capture.c
index 395612310c8e..8f7e8646893b 100644
--- a/drivers/media/video/mxc/capture/mxc_v4l2_capture.c
+++ b/drivers/media/video/mxc/capture/mxc_v4l2_capture.c
@@ -2511,6 +2511,14 @@ static int mxc_capture_s_fmt_vid_cap(struct file *file, void *priv,
return mxc_v4l2_s_fmt(cam, f);
}
+static int mxc_capture_s_fmt_vid_overlay(struct file *file, void *priv,
+ struct v4l2_format *f)
+{
+ struct video_device *dev = video_devdata(file);
+ cam_data *cam = video_get_drvdata(dev);
+
+ return mxc_v4l2_s_fmt(cam, f);
+}
static int mxc_capture_enum_input(struct file *file, void *priv,
struct v4l2_input *input)
{
@@ -2977,6 +2985,28 @@ static int mxc_capture_s_output(struct file *file, void *fh,
return 0;
}
+static int mxc_capture_g_fbuf(struct file *file, void *priv,
+ struct v4l2_framebuffer *fb)
+{
+ struct video_device *dev = video_devdata(file);
+ cam_data *cam = video_get_drvdata(dev);
+
+ *fb = cam->v4l2_fb;
+ fb->capability = V4L2_FBUF_CAP_EXTERNOVERLAY;
+
+ return 0;
+}
+
+static int mxc_capture_s_fbuf(struct file *file, void *priv,
+ struct v4l2_framebuffer *fb)
+{
+ struct video_device *dev = video_devdata(file);
+ cam_data *cam = video_get_drvdata(dev);
+
+ cam->v4l2_fb = *fb;
+
+ return 0;
+}
/*!
* This structure defines the functions to be called in this driver.
@@ -2994,8 +3024,10 @@ static struct v4l2_file_operations mxc_v4l_fops = {
static const struct v4l2_ioctl_ops mxc_capture_ioctl_ops = {
.vidioc_querycap = mxc_capture_querycap,
.vidioc_g_fmt_vid_cap = mxc_capture_g_fmt_vid_cap,
+ .vidioc_g_fmt_vid_overlay = mxc_capture_g_fmt_vid_cap,
.vidioc_enum_fmt_vid_cap = mxc_capture_enum_fmt_vid_cap,
.vidioc_s_fmt_vid_cap = mxc_capture_s_fmt_vid_cap,
+ .vidioc_s_fmt_vid_overlay = mxc_capture_s_fmt_vid_overlay,
.vidioc_enum_input = mxc_capture_enum_input,
.vidioc_g_input = mxc_capture_g_input,
.vidioc_s_input = mxc_capture_s_input,
@@ -3022,6 +3054,8 @@ static const struct v4l2_ioctl_ops mxc_capture_ioctl_ops = {
.vidioc_g_output = mxc_capture_g_output,
.vidioc_s_output = mxc_capture_s_output,
.vidioc_overlay = mxc_capture_overlay,
+ .vidioc_g_fbuf = mxc_capture_g_fbuf,
+ .vidioc_s_fbuf = mxc_capture_s_fbuf,
};
static struct video_device mxc_v4l_template = {