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 core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
sound
/
oss
/
i810_audio.c
diff --git
a/sound/oss/i810_audio.c
b/sound/oss/i810_audio.c
index
abc242a
..
c3c8a72
100644
(file)
--- a/
sound/oss/i810_audio.c
+++ b/
sound/oss/i810_audio.c
@@
-100,6
+100,9
@@
#include <linux/smp_lock.h>
#include <linux/ac97_codec.h>
#include <linux/bitops.h>
#include <linux/smp_lock.h>
#include <linux/ac97_codec.h>
#include <linux/bitops.h>
+#include <linux/mutex.h>
+#include <linux/mm.h>
+
#include <asm/uaccess.h>
#define DRIVER_VERSION "1.01"
#include <asm/uaccess.h>
#define DRIVER_VERSION "1.01"
@@
-331,7
+334,7
@@
struct i810_state {
struct i810_card *card; /* Card info */
/* single open lock mechanism, only used for recording */
struct i810_card *card; /* Card info */
/* single open lock mechanism, only used for recording */
- struct
semaphore open_sem
;
+ struct
mutex open_mutex
;
wait_queue_head_t open_wait;
/* file mode */
wait_queue_head_t open_wait;
/* file mode */
@@
-1521,9
+1524,9
@@
static void i810_channel_interrupt(struct i810_card *card)
#endif
}
#endif
}
-static irqreturn_t i810_interrupt(int irq, void *dev_id
, struct pt_regs *regs
)
+static irqreturn_t i810_interrupt(int irq, void *dev_id)
{
{
- struct i810_card *card =
(struct i810_card *)
dev_id;
+ struct i810_card *card = dev_id;
u32 status;
spin_lock(&card->lock);
u32 status;
spin_lock(&card->lock);
@@
-2597,7
+2600,7
@@
found_virt:
state->card = card;
state->magic = I810_STATE_MAGIC;
init_waitqueue_head(&dmabuf->wait);
state->card = card;
state->magic = I810_STATE_MAGIC;
init_waitqueue_head(&dmabuf->wait);
-
init_MUTEX(&state->open_sem
);
+
mutex_init(&state->open_mutex
);
file->private_data = state;
dmabuf->trigger = 0;
file->private_data = state;
dmabuf->trigger = 0;
@@
-3213,7
+3216,7
@@
static void __devinit i810_configure_clocking (void)
state->card = card;
state->magic = I810_STATE_MAGIC;
init_waitqueue_head(&dmabuf->wait);
state->card = card;
state->magic = I810_STATE_MAGIC;
init_waitqueue_head(&dmabuf->wait);
-
init_MUTEX(&state->open_sem
);
+
mutex_init(&state->open_mutex
);
dmabuf->fmt = I810_FMT_STEREO | I810_FMT_16BIT;
dmabuf->trigger = PCM_ENABLE_OUTPUT;
i810_set_spdif_output(state, -1, 0);
dmabuf->fmt = I810_FMT_STEREO | I810_FMT_16BIT;
dmabuf->trigger = PCM_ENABLE_OUTPUT;
i810_set_spdif_output(state, -1, 0);
@@
-3411,7
+3414,7
@@
static int __devinit i810_probe(struct pci_dev *pci_dev, const struct pci_device
goto out_iospace;
}
goto out_iospace;
}
- if (request_irq(card->irq, &i810_interrupt,
SA_SHIRQ
,
+ if (request_irq(card->irq, &i810_interrupt,
IRQF_SHARED
,
card_names[pci_id->driver_data], card)) {
printk(KERN_ERR "i810_audio: unable to allocate irq %d\n", card->irq);
goto out_iospace;
card_names[pci_id->driver_data], card)) {
printk(KERN_ERR "i810_audio: unable to allocate irq %d\n", card->irq);
goto out_iospace;