aboutsummaryrefslogtreecommitdiffstats
path: root/sound/usb/usbaudio.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/usb/usbaudio.c')
-rw-r--r--sound/usb/usbaudio.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sound/usb/usbaudio.c b/sound/usb/usbaudio.c
index e4b91045ca16..eeb09bb8cbf3 100644
--- a/sound/usb/usbaudio.c
+++ b/sound/usb/usbaudio.c
@@ -3091,6 +3091,7 @@ static int snd_usb_audio_create(struct usb_device *dev, int idx,
3091 chip->card = card; 3091 chip->card = card;
3092 INIT_LIST_HEAD(&chip->pcm_list); 3092 INIT_LIST_HEAD(&chip->pcm_list);
3093 INIT_LIST_HEAD(&chip->midi_list); 3093 INIT_LIST_HEAD(&chip->midi_list);
3094 INIT_LIST_HEAD(&chip->mixer_list);
3094 3095
3095 if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) { 3096 if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) {
3096 snd_usb_audio_free(chip); 3097 snd_usb_audio_free(chip);
@@ -3290,6 +3291,10 @@ static void snd_usb_audio_disconnect(struct usb_device *dev, void *ptr)
3290 list_for_each(p, &chip->midi_list) { 3291 list_for_each(p, &chip->midi_list) {
3291 snd_usbmidi_disconnect(p); 3292 snd_usbmidi_disconnect(p);
3292 } 3293 }
3294 /* release mixer resources */
3295 list_for_each(p, &chip->mixer_list) {
3296 snd_usb_mixer_disconnect(p);
3297 }
3293 usb_chip[chip->index] = NULL; 3298 usb_chip[chip->index] = NULL;
3294 up(&register_mutex); 3299 up(&register_mutex);
3295 snd_card_free(card); 3300 snd_card_free(card);