aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/radio/radio-zoltrix.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/radio/radio-zoltrix.c')
-rw-r--r--drivers/media/radio/radio-zoltrix.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/drivers/media/radio/radio-zoltrix.c b/drivers/media/radio/radio-zoltrix.c
index 51d57ed3b3e1..4d76e710194b 100644
--- a/drivers/media/radio/radio-zoltrix.c
+++ b/drivers/media/radio/radio-zoltrix.c
@@ -69,6 +69,7 @@ static int io = CONFIG_RADIO_ZOLTRIX_PORT;
69static int radio_nr = -1; 69static int radio_nr = -1;
70 70
71struct zol_device { 71struct zol_device {
72 unsigned long in_use;
72 int port; 73 int port;
73 int curvol; 74 int curvol;
74 unsigned long curfreq; 75 unsigned long curfreq;
@@ -396,11 +397,22 @@ static int vidioc_s_audio(struct file *file, void *priv,
396 397
397static struct zol_device zoltrix_unit; 398static struct zol_device zoltrix_unit;
398 399
400static int zoltrix_exclusive_open(struct inode *inode, struct file *file)
401{
402 return test_and_set_bit(0, &zoltrix_unit.in_use) ? -EBUSY : 0;
403}
404
405static int zoltrix_exclusive_release(struct inode *inode, struct file *file)
406{
407 clear_bit(0, &zoltrix_unit.in_use);
408 return 0;
409}
410
399static const struct file_operations zoltrix_fops = 411static const struct file_operations zoltrix_fops =
400{ 412{
401 .owner = THIS_MODULE, 413 .owner = THIS_MODULE,
402 .open = video_exclusive_open, 414 .open = zoltrix_exclusive_open,
403 .release = video_exclusive_release, 415 .release = zoltrix_exclusive_release,
404 .ioctl = video_ioctl2, 416 .ioctl = video_ioctl2,
405#ifdef CONFIG_COMPAT 417#ifdef CONFIG_COMPAT
406 .compat_ioctl = v4l_compat_ioctl32, 418 .compat_ioctl = v4l_compat_ioctl32,