commit: http://blackfin.uclinux.org/git/?p=linux-kernel;a=commitdiff;h=bb41d3c4e53b90ec26f74d8aa6364a9372227cb0
branch: http://blackfin.uclinux.org/git/?p=linux-kernel;a=shortlog;h=refs/heads/trunk

Ffmpeg needs this ioctl.

Signed-off-by: Scott Jiang <[email protected]>
---
 drivers/media/video/adv7183.c |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/drivers/media/video/adv7183.c b/drivers/media/video/adv7183.c
index e1d4c89..2b10e2a 100644
--- a/drivers/media/video/adv7183.c
+++ b/drivers/media/video/adv7183.c
@@ -469,6 +469,26 @@ static int adv7183_g_mbus_fmt(struct v4l2_subdev *sd,
 	return 0;
 }
 
+static int adv7183_g_parm(struct v4l2_subdev *sd, struct v4l2_streamparm *parms)
+{
+	struct adv7183 *decoder = to_adv7183(sd);
+	struct v4l2_captureparm *cp = &parms->parm.capture;
+
+	if (parms->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
+		return -EINVAL;
+
+	memset(cp, 0, sizeof(*cp));
+	cp->capability = V4L2_CAP_TIMEPERFRAME;
+	if (decoder->std & V4L2_STD_525_60) {
+		cp->timeperframe.numerator = 1;
+		cp->timeperframe.denominator = 30;
+	} else {
+		cp->timeperframe.numerator = 1;
+		cp->timeperframe.denominator = 25;
+	}
+	return 0;
+}
+
 static int adv7183_s_stream(struct v4l2_subdev *sd, int enable)
 {
 	struct adv7183 *decoder = to_adv7183(sd);
@@ -544,6 +564,8 @@ static const struct v4l2_subdev_video_ops adv7183_video_ops = {
 	.try_mbus_fmt = adv7183_try_mbus_fmt,
 	.s_mbus_fmt = adv7183_s_mbus_fmt,
 	.g_mbus_fmt = adv7183_g_mbus_fmt,
+	.g_parm = adv7183_g_parm,
+	.s_parm = adv7183_g_parm,
 	.s_stream = adv7183_s_stream,
 };
 
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to