aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/v4l2-ctrls.c
diff options
context:
space:
mode:
authorHans Verkuil <hans.verkuil@cisco.com>2011-06-07 03:50:31 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-07-27 16:53:17 -0400
commit7ebbc39fa0b469243b985e5e26755f1e6184213f (patch)
treebdb41825836c777d2e6c7f15572a5e553b68ff83 /drivers/media/video/v4l2-ctrls.c
parent37cd3b73683f15f1b6313d0de476726aa0942a75 (diff)
[media] v4l2-ctrls: drivers should be able to ignore the READ_ONLY flag
When applications try to set READ_ONLY controls an error should be returned. However, when drivers do that it should be accepted. Those controls could reflect some driver status which the application can't change but the driver obviously has to be able to change it. This is needed among others for future HDMI status controls. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/v4l2-ctrls.c')
-rw-r--r--drivers/media/video/v4l2-ctrls.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/media/video/v4l2-ctrls.c b/drivers/media/video/v4l2-ctrls.c
index d9e04394c856..0b1b30fded60 100644
--- a/drivers/media/video/v4l2-ctrls.c
+++ b/drivers/media/video/v4l2-ctrls.c
@@ -1826,9 +1826,6 @@ static int set_ctrl(struct v4l2_ctrl *ctrl, s32 *val)
1826 int ret; 1826 int ret;
1827 int i; 1827 int i;
1828 1828
1829 if (ctrl->flags & V4L2_CTRL_FLAG_READ_ONLY)
1830 return -EACCES;
1831
1832 v4l2_ctrl_lock(ctrl); 1829 v4l2_ctrl_lock(ctrl);
1833 1830
1834 /* Reset the 'is_new' flags of the cluster */ 1831 /* Reset the 'is_new' flags of the cluster */
@@ -1853,6 +1850,9 @@ int v4l2_s_ctrl(struct v4l2_ctrl_handler *hdl, struct v4l2_control *control)
1853 if (ctrl == NULL || !type_is_int(ctrl)) 1850 if (ctrl == NULL || !type_is_int(ctrl))
1854 return -EINVAL; 1851 return -EINVAL;
1855 1852
1853 if (ctrl->flags & V4L2_CTRL_FLAG_READ_ONLY)
1854 return -EACCES;
1855
1856 return set_ctrl(ctrl, &control->value); 1856 return set_ctrl(ctrl, &control->value);
1857} 1857}
1858EXPORT_SYMBOL(v4l2_s_ctrl); 1858EXPORT_SYMBOL(v4l2_s_ctrl);