ALSA: x86: Stop the stream when buffer is processed after disconnection
This shouldn't happen, but just to be sure... Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
28ed125b9a
commit
be9a2e933e
|
@ -971,19 +971,22 @@ static void had_process_buffer_done(struct snd_intelhad *intelhaddata)
|
|||
{
|
||||
struct snd_pcm_substream *substream;
|
||||
|
||||
if (!intelhaddata->connected)
|
||||
return; /* disconnected? - bail out */
|
||||
|
||||
substream = had_substream_get(intelhaddata);
|
||||
if (!substream)
|
||||
return; /* no stream? - bail out */
|
||||
|
||||
if (!intelhaddata->connected) {
|
||||
snd_pcm_stop_xrun(substream);
|
||||
goto out; /* disconnected? - bail out */
|
||||
}
|
||||
|
||||
/* process or stop the stream */
|
||||
if (had_process_ringbuf(substream, intelhaddata) < 0)
|
||||
snd_pcm_stop_xrun(substream);
|
||||
else
|
||||
snd_pcm_period_elapsed(substream);
|
||||
|
||||
out:
|
||||
had_substream_put(intelhaddata);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue