diff options
author | Hans Verkuil <hverkuil@xs4all.nl> | 2007-08-21 17:32:42 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2007-10-09 21:06:42 -0400 |
commit | 01f1e44fe8455b6c6c557a62119b8622fb99f5f2 (patch) | |
tree | e1bf62f369561d52aa913a60a75302dff3beb9a6 /drivers/media/video/cx88 | |
parent | ea115d54bc963eb2eb0dc223795f3bd6c689ff99 (diff) |
V4L/DVB (6088): cx2341x: some controls can't be changed while the device is busy
The driver should now pass the 'busy' state of the device to the cx2341x
module whenever controls are set or tried. -EBUSY will be returned if
the device is busy and the user attempts to modify certain 'dangerous'
controls. It concerns controls that change the audio or video
compression mode and bitrates.
The cx88-blackbird and pvrusb2 drivers currently always pass '0' (not busy)
to the cx2341x, effectively keeping the old behavior for now.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/cx88')
-rw-r--r-- | drivers/media/video/cx88/cx88-blackbird.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/media/video/cx88/cx88-blackbird.c b/drivers/media/video/cx88/cx88-blackbird.c index 206af419aea7..47007380a98a 100644 --- a/drivers/media/video/cx88/cx88-blackbird.c +++ b/drivers/media/video/cx88/cx88-blackbird.c | |||
@@ -876,7 +876,7 @@ static int vidioc_g_ext_ctrls (struct file *file, void *priv, | |||
876 | 876 | ||
877 | if (f->ctrl_class != V4L2_CTRL_CLASS_MPEG) | 877 | if (f->ctrl_class != V4L2_CTRL_CLASS_MPEG) |
878 | return -EINVAL; | 878 | return -EINVAL; |
879 | return cx2341x_ext_ctrls(&dev->params, f, VIDIOC_G_EXT_CTRLS); | 879 | return cx2341x_ext_ctrls(&dev->params, 0, f, VIDIOC_G_EXT_CTRLS); |
880 | } | 880 | } |
881 | 881 | ||
882 | static int vidioc_s_ext_ctrls (struct file *file, void *priv, | 882 | static int vidioc_s_ext_ctrls (struct file *file, void *priv, |
@@ -889,7 +889,7 @@ static int vidioc_s_ext_ctrls (struct file *file, void *priv, | |||
889 | if (f->ctrl_class != V4L2_CTRL_CLASS_MPEG) | 889 | if (f->ctrl_class != V4L2_CTRL_CLASS_MPEG) |
890 | return -EINVAL; | 890 | return -EINVAL; |
891 | p = dev->params; | 891 | p = dev->params; |
892 | err = cx2341x_ext_ctrls(&p, f, VIDIOC_S_EXT_CTRLS); | 892 | err = cx2341x_ext_ctrls(&p, 0, f, VIDIOC_S_EXT_CTRLS); |
893 | if (!err) { | 893 | if (!err) { |
894 | err = cx2341x_update(dev, blackbird_mbox_func, &dev->params, &p); | 894 | err = cx2341x_update(dev, blackbird_mbox_func, &dev->params, &p); |
895 | dev->params = p; | 895 | dev->params = p; |
@@ -907,7 +907,7 @@ static int vidioc_try_ext_ctrls (struct file *file, void *priv, | |||
907 | if (f->ctrl_class != V4L2_CTRL_CLASS_MPEG) | 907 | if (f->ctrl_class != V4L2_CTRL_CLASS_MPEG) |
908 | return -EINVAL; | 908 | return -EINVAL; |
909 | p = dev->params; | 909 | p = dev->params; |
910 | err = cx2341x_ext_ctrls(&p, f, VIDIOC_TRY_EXT_CTRLS); | 910 | err = cx2341x_ext_ctrls(&p, 0, f, VIDIOC_TRY_EXT_CTRLS); |
911 | 911 | ||
912 | return err; | 912 | return err; |
913 | } | 913 | } |