From a14fba4e0c71d62d38af1906ccebf395ed7fdcf4 Mon Sep 17 00:00:00 2001 From: amazingfate Date: Mon, 8 Jan 2024 10:25:54 +0800 Subject: [PATCH] media: rockchip: hdmirx: add VIDIOC_S_PARM and VIDIOC_G_PARM --- .../platform/rockchip/hdmirx/rk_hdmirx.c | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c b/drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c index 8807525926f33..9cc911e3168c4 100644 --- a/drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c +++ b/drivers/media/platform/rockchip/hdmirx/rk_hdmirx.c @@ -1625,6 +1625,26 @@ static int hdmirx_s_input(struct file *file, void *priv, unsigned int i) return i == 0 ? 0 : -EINVAL; } +static int hdmirx_g_parm(struct file *file, void *priv, + struct v4l2_streamparm *parm) +{ + struct hdmirx_stream *stream = video_drvdata(file); + struct rk_hdmirx_dev *hdmirx_dev = stream->hdmirx_dev; + struct v4l2_fract fps; + fps = v4l2_calc_timeperframe(&hdmirx_dev->timings); + parm->parm.capture.timeperframe.numerator = fps.numerator; + parm->parm.capture.timeperframe.denominator = fps.denominator; + parm->parm.capture.readbuffers = 2; + + return 0; +} + +static int hdmirx_s_parm(struct file *file, void *priv, + struct v4l2_streamparm *parm) +{ + return 0; +} + static int fcc_xysubs(u32 fcc, u32 *xsubs, u32 *ysubs) { /* Note: cbcr plane bpp is 16 bit */ @@ -2295,6 +2315,8 @@ static const struct v4l2_ioctl_ops hdmirx_v4l2_ioctl_ops = { .vidioc_s_input = hdmirx_s_input, .vidioc_g_edid = hdmirx_get_edid, .vidioc_s_edid = hdmirx_set_edid, + .vidioc_g_parm = hdmirx_g_parm, + .vidioc_s_parm = hdmirx_s_parm, .vidioc_reqbufs = vb2_ioctl_reqbufs, .vidioc_querybuf = vb2_ioctl_querybuf,