浏览代码

ALSA: snd-usb-caiaq: Lock on stream start/unpause

Fix a bug which can result in white noise from the driver after stream
start or unpause.

Signed-off-by: Mark Hills <mark@pogo.org.uk>
Acked-by: Daniel Mack <daniel@caiaq.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Mark Hills 15 年之前
父节点
当前提交
ac9dd9d384
共有 1 个文件被更改,包括 4 次插入0 次删除
  1. 4 0
      sound/usb/caiaq/audio.c

+ 4 - 0
sound/usb/caiaq/audio.c

@@ -62,10 +62,14 @@ static void
 activate_substream(struct snd_usb_caiaqdev *dev,
 activate_substream(struct snd_usb_caiaqdev *dev,
 	           struct snd_pcm_substream *sub)
 	           struct snd_pcm_substream *sub)
 {
 {
+	spin_lock(&dev->spinlock);
+
 	if (sub->stream == SNDRV_PCM_STREAM_PLAYBACK)
 	if (sub->stream == SNDRV_PCM_STREAM_PLAYBACK)
 		dev->sub_playback[sub->number] = sub;
 		dev->sub_playback[sub->number] = sub;
 	else
 	else
 		dev->sub_capture[sub->number] = sub;
 		dev->sub_capture[sub->number] = sub;
+
+	spin_unlock(&dev->spinlock);
 }
 }
 
 
 static void
 static void