Hello explicit Cc Hans, as I recall the usage of s/g_parm was deprecated and discouraged in mainline. Hans: Support for g/s_param is required by Nikita to maintain compatibility with (out of tree?) subdevice drivers. Should we add it to the mainline receiver driver ? What other API should be used to control the subdevice framerate ? Should it go through VIDIOC_SUBDEV_S_FRAME_INTERVAL instead ? Thanks j On Fri, Sep 24, 2021 at 04:51:38PM +0300, Nikita Yushchenko wrote: > From: Vladimir Barinov <vladimir.barinov@xxxxxxxxxxxxxxxxxx> > > This adds g/s_parm ioctls for parallel interface. > > Signed-off-by: Vladimir Barinov <vladimir.barinov@xxxxxxxxxxxxxxxxxx> > Signed-off-by: Nikita Yushchenko <nikita.yoush@xxxxxxxxxxxxxxxxxx> > --- > Changes from v1: > - use &vin->vdev to access vin's struct video_device > > drivers/media/platform/rcar-vin/rcar-v4l2.c | 21 +++++++++++++++++++++ > 1 file changed, 21 insertions(+) > > diff --git a/drivers/media/platform/rcar-vin/rcar-v4l2.c b/drivers/media/platform/rcar-vin/rcar-v4l2.c > index bdeff51bf768..a5bfa76fdac6 100644 > --- a/drivers/media/platform/rcar-vin/rcar-v4l2.c > +++ b/drivers/media/platform/rcar-vin/rcar-v4l2.c > @@ -527,6 +527,24 @@ static int rvin_s_selection(struct file *file, void *fh, > return 0; > } > > +static int rvin_g_parm(struct file *file, void *priv, > + struct v4l2_streamparm *parm) > +{ > + struct rvin_dev *vin = video_drvdata(file); > + struct v4l2_subdev *sd = vin_to_source(vin); > + > + return v4l2_g_parm_cap(&vin->vdev, sd, parm); > +} > + > +static int rvin_s_parm(struct file *file, void *priv, > + struct v4l2_streamparm *parm) > +{ > + struct rvin_dev *vin = video_drvdata(file); > + struct v4l2_subdev *sd = vin_to_source(vin); > + > + return v4l2_s_parm_cap(&vin->vdev, sd, parm); > +} > + > static int rvin_g_pixelaspect(struct file *file, void *priv, > int type, struct v4l2_fract *f) > { > @@ -743,6 +761,9 @@ static const struct v4l2_ioctl_ops rvin_ioctl_ops = { > .vidioc_g_selection = rvin_g_selection, > .vidioc_s_selection = rvin_s_selection, > > + .vidioc_g_parm = rvin_g_parm, > + .vidioc_s_parm = rvin_s_parm, > + > .vidioc_g_pixelaspect = rvin_g_pixelaspect, > > .vidioc_enum_input = rvin_enum_input, > -- > 2.30.2 >