Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (365 commits) ALSA: hda - Disable sticky PCM stream assignment for AD codecs ALSA: usb - Creative USB X-Fi volume knob support ALSA: ca0106: Use card specific dac id for mute controls. ALSA: ca0106: Allow different sound cards to use different SPI channel mappings. ALSA: ca0106: Create a nice spot for mapping channels to dacs. ALSA: ca0106: Move enabling of front dac out of hardcoded setup sequence. ALSA: ca0106: Pull out dac powering routine into separate function. ALSA: ca0106 - add Sound Blaster 5.1vx info. ASoC: tlv320dac33: Use usleep_range for delays ALSA: usb-audio: add Novation Launchpad support ALSA: hda - Add workarounds for CT-IBG controllers ALSA: hda - Fix wrong TLV mute bit for STAC/IDT codecs ASoC: tpa6130a2: Error handling for broken chip ASoC: max98088: Staticise m98088_eq_band ASoC: soc-core: Fix codec->name memory leak ALSA: hda - Apply ideapad quirk to Acer laptops with Cxt5066 ALSA: hda - Add some workarounds for Creative IBG ALSA: hda - Fix wrong SPDIF NID assignment for CA0110 ALSA: hda - Fix codec rename rules for ALC662-compatible codecs ALSA: hda - Add alc_init_jacks() call to other codecs ...
This commit is contained in:
@@ -39,7 +39,7 @@
|
||||
#include <linux/delay.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/smp_lock.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/gfp.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/io.h>
|
||||
@@ -79,6 +79,7 @@
|
||||
dev.rec_sample_rate / \
|
||||
dev.rec_channels)
|
||||
|
||||
static DEFINE_MUTEX(msnd_pinnacle_mutex);
|
||||
static multisound_dev_t dev;
|
||||
|
||||
#ifndef HAVE_DSPCODEH
|
||||
@@ -651,12 +652,12 @@ static long dev_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
|
||||
ret = -EINVAL;
|
||||
|
||||
lock_kernel();
|
||||
mutex_lock(&msnd_pinnacle_mutex);
|
||||
if (minor == dev.dsp_minor)
|
||||
ret = dsp_ioctl(file, cmd, arg);
|
||||
else if (minor == dev.mixer_minor)
|
||||
ret = mixer_ioctl(cmd, arg);
|
||||
unlock_kernel();
|
||||
mutex_unlock(&msnd_pinnacle_mutex);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -761,7 +762,7 @@ static int dev_open(struct inode *inode, struct file *file)
|
||||
int minor = iminor(inode);
|
||||
int err = 0;
|
||||
|
||||
lock_kernel();
|
||||
mutex_lock(&msnd_pinnacle_mutex);
|
||||
if (minor == dev.dsp_minor) {
|
||||
if ((file->f_mode & FMODE_WRITE &&
|
||||
test_bit(F_AUDIO_WRITE_INUSE, &dev.flags)) ||
|
||||
@@ -791,7 +792,7 @@ static int dev_open(struct inode *inode, struct file *file)
|
||||
} else
|
||||
err = -EINVAL;
|
||||
out:
|
||||
unlock_kernel();
|
||||
mutex_unlock(&msnd_pinnacle_mutex);
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -800,14 +801,14 @@ static int dev_release(struct inode *inode, struct file *file)
|
||||
int minor = iminor(inode);
|
||||
int err = 0;
|
||||
|
||||
lock_kernel();
|
||||
mutex_lock(&msnd_pinnacle_mutex);
|
||||
if (minor == dev.dsp_minor)
|
||||
err = dsp_release(file);
|
||||
else if (minor == dev.mixer_minor) {
|
||||
/* nothing */
|
||||
} else
|
||||
err = -EINVAL;
|
||||
unlock_kernel();
|
||||
mutex_unlock(&msnd_pinnacle_mutex);
|
||||
return err;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user