diff options
Diffstat (limited to 'drivers/media/radio/radio-gemtek-pci.c')
-rw-r--r-- | drivers/media/radio/radio-gemtek-pci.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/drivers/media/radio/radio-gemtek-pci.c b/drivers/media/radio/radio-gemtek-pci.c index 5cd7f032298d..a7b9a5df4ca7 100644 --- a/drivers/media/radio/radio-gemtek-pci.c +++ b/drivers/media/radio/radio-gemtek-pci.c | |||
@@ -100,9 +100,8 @@ struct gemtek_pci_card { | |||
100 | u8 mute; | 100 | u8 mute; |
101 | }; | 101 | }; |
102 | 102 | ||
103 | static const char rcsid[] = "$Id: radio-gemtek-pci.c,v 1.1 2001/07/23 08:08:16 ted Exp ted $"; | ||
104 | |||
105 | static int nr_radio = -1; | 103 | static int nr_radio = -1; |
104 | static unsigned long in_use; | ||
106 | 105 | ||
107 | static inline u8 gemtek_pci_out( u16 value, u32 port ) | 106 | static inline u8 gemtek_pci_out( u16 value, u32 port ) |
108 | { | 107 | { |
@@ -364,10 +363,21 @@ MODULE_DEVICE_TABLE( pci, gemtek_pci_id ); | |||
364 | 363 | ||
365 | static int mx = 1; | 364 | static int mx = 1; |
366 | 365 | ||
366 | static int gemtek_pci_exclusive_open(struct inode *inode, struct file *file) | ||
367 | { | ||
368 | return test_and_set_bit(0, &in_use) ? -EBUSY : 0; | ||
369 | } | ||
370 | |||
371 | static int gemtek_pci_exclusive_release(struct inode *inode, struct file *file) | ||
372 | { | ||
373 | clear_bit(0, &in_use); | ||
374 | return 0; | ||
375 | } | ||
376 | |||
367 | static const struct file_operations gemtek_pci_fops = { | 377 | static const struct file_operations gemtek_pci_fops = { |
368 | .owner = THIS_MODULE, | 378 | .owner = THIS_MODULE, |
369 | .open = video_exclusive_open, | 379 | .open = gemtek_pci_exclusive_open, |
370 | .release = video_exclusive_release, | 380 | .release = gemtek_pci_exclusive_release, |
371 | .ioctl = video_ioctl2, | 381 | .ioctl = video_ioctl2, |
372 | #ifdef CONFIG_COMPAT | 382 | #ifdef CONFIG_COMPAT |
373 | .compat_ioctl = v4l_compat_ioctl32, | 383 | .compat_ioctl = v4l_compat_ioctl32, |