git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git]
/
sound
/
oss
/
btaudio.c
diff --git
a/sound/oss/btaudio.c
b/sound/oss/btaudio.c
index
a85093f
..
bfe3b53
100644
(file)
--- a/
sound/oss/btaudio.c
+++ b/
sound/oss/btaudio.c
@@
-32,6
+32,8
@@
#include <linux/soundcard.h>
#include <linux/slab.h>
#include <linux/kdev_t.h>
#include <linux/soundcard.h>
#include <linux/slab.h>
#include <linux/kdev_t.h>
+#include <linux/mutex.h>
+
#include <asm/uaccess.h>
#include <asm/io.h>
#include <asm/uaccess.h>
#include <asm/io.h>
@@
-108,7
+110,7
@@
struct btaudio {
/* locking */
int users;
/* locking */
int users;
- struct
semaphore
lock;
+ struct
mutex
lock;
/* risc instructions */
unsigned int risc_size;
/* risc instructions */
unsigned int risc_size;
@@
-440,7
+442,7
@@
static struct file_operations btaudio_mixer_fops = {
static int btaudio_dsp_open(struct inode *inode, struct file *file,
struct btaudio *bta, int analog)
{
static int btaudio_dsp_open(struct inode *inode, struct file *file,
struct btaudio *bta, int analog)
{
-
down
(&bta->lock);
+
mutex_lock
(&bta->lock);
if (bta->users)
goto busy;
bta->users++;
if (bta->users)
goto busy;
bta->users++;
@@
-452,11
+454,11
@@
static int btaudio_dsp_open(struct inode *inode, struct file *file,
bta->read_count = 0;
bta->sampleshift = 0;
bta->read_count = 0;
bta->sampleshift = 0;
-
up
(&bta->lock);
+
mutex_unlock
(&bta->lock);
return 0;
busy:
return 0;
busy:
-
up
(&bta->lock);
+
mutex_unlock
(&bta->lock);
return -EBUSY;
}
return -EBUSY;
}
@@
-496,11
+498,11
@@
static int btaudio_dsp_release(struct inode *inode, struct file *file)
{
struct btaudio *bta = file->private_data;
{
struct btaudio *bta = file->private_data;
-
down
(&bta->lock);
+
mutex_lock
(&bta->lock);
if (bta->recording)
stop_recording(bta);
bta->users--;
if (bta->recording)
stop_recording(bta);
bta->users--;
-
up
(&bta->lock);
+
mutex_unlock
(&bta->lock);
return 0;
}
return 0;
}
@@
-513,7
+515,7
@@
static ssize_t btaudio_dsp_read(struct file *file, char __user *buffer,
DECLARE_WAITQUEUE(wait, current);
add_wait_queue(&bta->readq, &wait);
DECLARE_WAITQUEUE(wait, current);
add_wait_queue(&bta->readq, &wait);
-
down
(&bta->lock);
+
mutex_lock
(&bta->lock);
while (swcount > 0) {
if (0 == bta->read_count) {
if (!bta->recording) {
while (swcount > 0) {
if (0 == bta->read_count) {
if (!bta->recording) {
@@
-528,10
+530,10
@@
static ssize_t btaudio_dsp_read(struct file *file, char __user *buffer,
ret = -EAGAIN;
break;
}
ret = -EAGAIN;
break;
}
-
up
(&bta->lock);
+
mutex_unlock
(&bta->lock);
current->state = TASK_INTERRUPTIBLE;
schedule();
current->state = TASK_INTERRUPTIBLE;
schedule();
-
down
(&bta->lock);
+
mutex_lock
(&bta->lock);
if(signal_pending(current)) {
if (0 == ret)
ret = -EINTR;
if(signal_pending(current)) {
if (0 == ret)
ret = -EINTR;
@@
-604,7
+606,7
@@
static ssize_t btaudio_dsp_read(struct file *file, char __user *buffer,
if (bta->read_offset == bta->buf_size)
bta->read_offset = 0;
}
if (bta->read_offset == bta->buf_size)
bta->read_offset = 0;
}
-
up
(&bta->lock);
+
mutex_unlock
(&bta->lock);
remove_wait_queue(&bta->readq, &wait);
current->state = TASK_RUNNING;
return ret;
remove_wait_queue(&bta->readq, &wait);
current->state = TASK_RUNNING;
return ret;
@@
-651,10
+653,10
@@
static int btaudio_dsp_ioctl(struct inode *inode, struct file *file,
bta->decimation = 0;
}
if (bta->recording) {
bta->decimation = 0;
}
if (bta->recording) {
-
down
(&bta->lock);
+
mutex_lock
(&bta->lock);
stop_recording(bta);
start_recording(bta);
stop_recording(bta);
start_recording(bta);
-
up
(&bta->lock);
+
mutex_unlock
(&bta->lock);
}
/* fall through */
case SOUND_PCM_READ_RATE:
}
/* fall through */
case SOUND_PCM_READ_RATE:
@@
-716,10
+718,10
@@
static int btaudio_dsp_ioctl(struct inode *inode, struct file *file,
else
bta->bits = 16;
if (bta->recording) {
else
bta->bits = 16;
if (bta->recording) {
-
down
(&bta->lock);
+
mutex_lock
(&bta->lock);
stop_recording(bta);
start_recording(bta);
stop_recording(bta);
start_recording(bta);
-
up
(&bta->lock);
+
mutex_unlock
(&bta->lock);
}
}
if (debug)
}
}
if (debug)
@@
-736,9
+738,9
@@
static int btaudio_dsp_ioctl(struct inode *inode, struct file *file,
case SNDCTL_DSP_RESET:
if (bta->recording) {
case SNDCTL_DSP_RESET:
if (bta->recording) {
-
down
(&bta->lock);
+
mutex_lock
(&bta->lock);
stop_recording(bta);
stop_recording(bta);
-
up
(&bta->lock);
+
mutex_unlock
(&bta->lock);
}
return 0;
case SNDCTL_DSP_GETBLKSIZE:
}
return 0;
case SNDCTL_DSP_GETBLKSIZE:
@@
-941,7
+943,7
@@
static int __devinit btaudio_probe(struct pci_dev *pci_dev,
if (rate)
bta->rate = rate;
if (rate)
bta->rate = rate;
-
init_MUTEX
(&bta->lock);
+
mutex_init
(&bta->lock);
init_waitqueue_head(&bta->readq);
if (-1 != latency) {
init_waitqueue_head(&bta->readq);
if (-1 != latency) {
@@
-1101,7
+1103,7
@@
static int btaudio_init_module(void)
digital ? "digital" : "",
analog && digital ? "+" : "",
analog ? "analog" : "");
digital ? "digital" : "",
analog && digital ? "+" : "",
analog ? "analog" : "");
- return pci_
module_init
(&btaudio_pci_driver);
+ return pci_
register_driver
(&btaudio_pci_driver);
}
static void btaudio_cleanup_module(void)
}
static void btaudio_cleanup_module(void)