Skip to content

Commit

Permalink
V4L/DVB (9069): cx88: Bugfix: all client disconnects put the frontend…
Browse files Browse the repository at this point in the history
… 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>
  • Loading branch information
Darron Broad authored and Mauro Carvalho Chehab committed Oct 12, 2008
1 parent f907c02 commit 3e01084
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 1 deletion.
5 changes: 4 additions & 1 deletion drivers/media/video/cx88/cx88-video.c
Original file line number Diff line number Diff line change
Expand Up @@ -839,6 +839,8 @@ static int video_open(struct inode *inode, struct file *file)
}
unlock_kernel();

atomic_inc(&core->users);

return 0;
}

Expand Down Expand Up @@ -926,7 +928,8 @@ static int video_release(struct inode *inode, struct file *file)
file->private_data = NULL;
kfree(fh);

cx88_call_i2c_clients (dev->core, TUNER_SET_STANDBY, NULL);
if(atomic_dec_and_test(&dev->core->users))
cx88_call_i2c_clients (dev->core, TUNER_SET_STANDBY, NULL);

return 0;
}
Expand Down
1 change: 1 addition & 0 deletions drivers/media/video/cx88/cx88.h
Original file line number Diff line number Diff line change
Expand Up @@ -349,6 +349,7 @@ struct cx88_core {
struct mutex lock;
/* various v4l controls */
u32 freq;
atomic_t users;

/* cx88-video needs to access cx8802 for hybrid tuner pll access. */
struct cx8802_dev *dvbdev;
Expand Down

0 comments on commit 3e01084

Please sign in to comment.