diff options
Diffstat (limited to 'sound/usb/line6/pcm.c')
-rw-r--r-- | sound/usb/line6/pcm.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sound/usb/line6/pcm.c b/sound/usb/line6/pcm.c index 204cc074adb9..41aa3355e920 100644 --- a/sound/usb/line6/pcm.c +++ b/sound/usb/line6/pcm.c | |||
@@ -55,7 +55,6 @@ static int snd_line6_impulse_volume_put(struct snd_kcontrol *kcontrol, | |||
55 | err = line6_pcm_acquire(line6pcm, LINE6_STREAM_IMPULSE); | 55 | err = line6_pcm_acquire(line6pcm, LINE6_STREAM_IMPULSE); |
56 | if (err < 0) { | 56 | if (err < 0) { |
57 | line6pcm->impulse_volume = 0; | 57 | line6pcm->impulse_volume = 0; |
58 | line6_pcm_release(line6pcm, LINE6_STREAM_IMPULSE); | ||
59 | return err; | 58 | return err; |
60 | } | 59 | } |
61 | } else { | 60 | } else { |
@@ -211,7 +210,9 @@ static void line6_stream_stop(struct snd_line6_pcm *line6pcm, int direction, | |||
211 | spin_lock_irqsave(&pstr->lock, flags); | 210 | spin_lock_irqsave(&pstr->lock, flags); |
212 | clear_bit(type, &pstr->running); | 211 | clear_bit(type, &pstr->running); |
213 | if (!pstr->running) { | 212 | if (!pstr->running) { |
213 | spin_unlock_irqrestore(&pstr->lock, flags); | ||
214 | line6_unlink_audio_urbs(line6pcm, pstr); | 214 | line6_unlink_audio_urbs(line6pcm, pstr); |
215 | spin_lock_irqsave(&pstr->lock, flags); | ||
215 | if (direction == SNDRV_PCM_STREAM_CAPTURE) { | 216 | if (direction == SNDRV_PCM_STREAM_CAPTURE) { |
216 | line6pcm->prev_fbuf = NULL; | 217 | line6pcm->prev_fbuf = NULL; |
217 | line6pcm->prev_fsize = 0; | 218 | line6pcm->prev_fsize = 0; |