summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Mack <zonque@gmail.com>2012-04-12 13:51:10 +0200
committerTakashi Iwai <tiwai@suse.de>2012-04-13 10:21:55 +0200
commit596580d0ee1d17af70920a7bb06c963418014dd1 (patch)
treef849b2f0a5b7ea698efcdc26878b73939ad7a835
parentLinux 3.4-rc1 (diff)
downloadlinux-596580d0ee1d17af70920a7bb06c963418014dd1.tar.xz
linux-596580d0ee1d17af70920a7bb06c963418014dd1.zip
ALSA: snd-usb: add snd_usb_audio-wide mutex
This is needed for new card-wide list operations. Signed-off-by: Daniel Mack <zonque@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/usb/card.c2
-rw-r--r--sound/usb/usbaudio.h1
2 files changed, 3 insertions, 0 deletions
diff --git a/sound/usb/card.c b/sound/usb/card.c
index 4a7be7b98331..6bc88b7ce4fd 100644
--- a/sound/usb/card.c
+++ b/sound/usb/card.c
@@ -276,6 +276,7 @@ static int snd_usb_create_streams(struct snd_usb_audio *chip, int ctrlif)
static int snd_usb_audio_free(struct snd_usb_audio *chip)
{
+ mutex_destroy(&chip->mutex);
kfree(chip);
return 0;
}
@@ -336,6 +337,7 @@ static int snd_usb_audio_create(struct usb_device *dev, int idx,
return -ENOMEM;
}
+ mutex_init(&chip->mutex);
mutex_init(&chip->shutdown_mutex);
chip->index = idx;
chip->dev = dev;
diff --git a/sound/usb/usbaudio.h b/sound/usb/usbaudio.h
index 3e2b03577936..a16c21d2d7ed 100644
--- a/sound/usb/usbaudio.h
+++ b/sound/usb/usbaudio.h
@@ -36,6 +36,7 @@ struct snd_usb_audio {
struct snd_card *card;
struct usb_interface *pm_intf;
u32 usb_id;
+ struct mutex mutex;
struct mutex shutdown_mutex;
unsigned int shutdown:1;
unsigned int probing:1;