From 93ed5e490850c885f2837bab98344e583696d1b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 8 Dec 2018 06:12:47 +0100 Subject: [PATCH 030/389] media: sun6i-csi: Pass on g_parm/s_parm to the subdev Signed-off-by: Ondrej Jirman --- .../platform/sunxi/sun6i-csi/sun6i_video.c | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/drivers/media/platform/sunxi/sun6i-csi/sun6i_video.c b/drivers/media/platform/sunxi/sun6i-csi/sun6i_video.c index 1d1755c1e18d..f7f74fa5fbfc 100644 --- a/drivers/media/platform/sunxi/sun6i-csi/sun6i_video.c +++ b/drivers/media/platform/sunxi/sun6i-csi/sun6i_video.c @@ -469,6 +469,32 @@ static int sun6i_video_s_input(struct file *file, void *private, return 0; } +static int sun6i_vidioc_g_parm(struct file *file, void *priv, + struct v4l2_streamparm *p) +{ + struct sun6i_video *video = video_drvdata(file); + struct v4l2_subdev *subdev; + + subdev = sun6i_video_remote_subdev(video, NULL); + if (!subdev) + return -ENXIO; + + return v4l2_g_parm_cap(video_devdata(file), subdev, p); +} + +static int sun6i_vidioc_s_parm(struct file *file, void *priv, + struct v4l2_streamparm *p) +{ + struct sun6i_video *video = video_drvdata(file); + struct v4l2_subdev *subdev; + + subdev = sun6i_video_remote_subdev(video, NULL); + if (!subdev) + return -ENXIO; + + return v4l2_s_parm_cap(video_devdata(file), subdev, p); +} + static const struct v4l2_ioctl_ops sun6i_video_ioctl_ops = { .vidioc_querycap = sun6i_video_querycap, @@ -481,6 +507,9 @@ static const struct v4l2_ioctl_ops sun6i_video_ioctl_ops = { .vidioc_g_input = sun6i_video_g_input, .vidioc_s_input = sun6i_video_s_input, + .vidioc_g_parm = sun6i_vidioc_g_parm, + .vidioc_s_parm = sun6i_vidioc_s_parm, + .vidioc_create_bufs = vb2_ioctl_create_bufs, .vidioc_prepare_buf = vb2_ioctl_prepare_buf, .vidioc_reqbufs = vb2_ioctl_reqbufs, -- 2.35.3