diff options
author | Darron Broad <darron@kewl.org> | 2008-09-25 15:51:11 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2008-10-12 07:37:11 -0400 |
commit | 3e01084519a678b410df247581a51eeb1bbf11d5 (patch) | |
tree | 92f06fdab9d0570a2569a27eabc67d95626df8e5 /drivers/media/video/cx88/cx88-video.c | |
parent | f907c0207924dd598db37092d331738e3fcb9fbd (diff) |
V4L/DVB (9069): cx88: Bugfix: all client disconnects put the frontend to sleep.
From the author:
"This fixes the problem where previously all client disconnects
put the analogue frontend into standby.
In the following example, the first command is succesfully
watching TV but the second command which returns EBUSY
detunes the receiver by entering it into the standby state.
tvtime -d /dev/video0 &
cat /dev/video0
"
Signed-off-by: Steven Toth <stoth@linuxtv.org>
Signed-off-by: Darron Broad <darron@kewl.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx88/cx88-video.c')
-rw-r--r-- | drivers/media/video/cx88/cx88-video.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/media/video/cx88/cx88-video.c b/drivers/media/video/cx88/cx88-video.c index 61e03d4703f6..be45955dff68 100644 --- a/drivers/media/video/cx88/cx88-video.c +++ b/drivers/media/video/cx88/cx88-video.c | |||
@@ -839,6 +839,8 @@ static int video_open(struct inode *inode, struct file *file) | |||
839 | } | 839 | } |
840 | unlock_kernel(); | 840 | unlock_kernel(); |
841 | 841 | ||
842 | atomic_inc(&core->users); | ||
843 | |||
842 | return 0; | 844 | return 0; |
843 | } | 845 | } |
844 | 846 | ||
@@ -926,7 +928,8 @@ static int video_release(struct inode *inode, struct file *file) | |||
926 | file->private_data = NULL; | 928 | file->private_data = NULL; |
927 | kfree(fh); | 929 | kfree(fh); |
928 | 930 | ||
929 | cx88_call_i2c_clients (dev->core, TUNER_SET_STANDBY, NULL); | 931 | if(atomic_dec_and_test(&dev->core->users)) |
932 | cx88_call_i2c_clients (dev->core, TUNER_SET_STANDBY, NULL); | ||
930 | 933 | ||
931 | return 0; | 934 | return 0; |
932 | } | 935 | } |