On Thursday 29 October 2009 07:51:04 hvaibhav@xxxxxx wrote: > From: Vaibhav Hiremath <hvaibhav@xxxxxx> > > Added support for Control IOCTL, > - s_ctrl > - g_ctrl > - queryctrl > > Change from last patch: > - added room for error return in queryctrl function. > > Signed-off-by: Vaibhav Hiremath <hvaibhav@xxxxxx> > --- > drivers/media/video/davinci/vpfe_capture.c | 43 ++++++++++++++++++++++++++++ > 1 files changed, 43 insertions(+), 0 deletions(-) > > diff --git a/drivers/media/video/davinci/vpfe_capture.c b/drivers/media/video/davinci/vpfe_capture.c > index abe21e4..8275d02 100644 > --- a/drivers/media/video/davinci/vpfe_capture.c > +++ b/drivers/media/video/davinci/vpfe_capture.c > @@ -1368,6 +1368,46 @@ static int vpfe_g_std(struct file *file, void *priv, v4l2_std_id *std_id) > return 0; > } > > +static int vpfe_queryctrl(struct file *file, void *priv, > + struct v4l2_queryctrl *qctrl) > +{ > + struct vpfe_device *vpfe_dev = video_drvdata(file); > + struct vpfe_subdev_info *sdinfo; > + int ret = 0; > + > + sdinfo = vpfe_dev->current_subdev; > + > + ret = v4l2_device_call_until_err(&vpfe_dev->v4l2_dev, sdinfo->grp_id, > + core, queryctrl, qctrl); > + > + if (ret) > + qctrl->flags |= V4L2_CTRL_FLAG_DISABLED; Please remove this bogus flag. Just do: return v4l2_device_call_until_err(&vpfe_dev->v4l2_dev, sdinfo->grp_id, core, queryctrl, qctrl); Simple and effective. Regards, Hans > + > + return ret; > +} > + > +static int vpfe_g_ctrl(struct file *file, void *priv, struct v4l2_control *ctrl) > +{ > + struct vpfe_device *vpfe_dev = video_drvdata(file); > + struct vpfe_subdev_info *sdinfo; > + > + sdinfo = vpfe_dev->current_subdev; > + > + return v4l2_device_call_until_err(&vpfe_dev->v4l2_dev, sdinfo->grp_id, > + core, g_ctrl, ctrl); > +} > + > +static int vpfe_s_ctrl(struct file *file, void *priv, struct v4l2_control *ctrl) > +{ > + struct vpfe_device *vpfe_dev = video_drvdata(file); > + struct vpfe_subdev_info *sdinfo; > + > + sdinfo = vpfe_dev->current_subdev; > + > + return v4l2_device_call_until_err(&vpfe_dev->v4l2_dev, sdinfo->grp_id, > + core, s_ctrl, ctrl); > +} > + > /* > * Videobuf operations > */ > @@ -1939,6 +1979,9 @@ static const struct v4l2_ioctl_ops vpfe_ioctl_ops = { > .vidioc_querystd = vpfe_querystd, > .vidioc_s_std = vpfe_s_std, > .vidioc_g_std = vpfe_g_std, > + .vidioc_queryctrl = vpfe_queryctrl, > + .vidioc_g_ctrl = vpfe_g_ctrl, > + .vidioc_s_ctrl = vpfe_s_ctrl, > .vidioc_reqbufs = vpfe_reqbufs, > .vidioc_querybuf = vpfe_querybuf, > .vidioc_qbuf = vpfe_qbuf, > -- > 1.6.2.4 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-media" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html