ALSA: x86: Use snd_pcm_stop_xrun() for connection / disconnection paths
This seems more friendly to user-space, as it's notified at least as an error, instead of forcibly moving the PCM state to SETUP out of sudden. Moreover, snd_pcm_stop() needs an extra PCM spinlock I forgot, while snd_pcm_stop_xrun() takes the spinlock by itself. Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
b9bacf275c
commit
5def90196b
|
@ -1378,7 +1378,7 @@ static void had_process_hot_plug(struct snd_intelhad *intelhaddata)
|
|||
dev_dbg(intelhaddata->dev,
|
||||
"Force to stop the active stream by disconnection\n");
|
||||
/* Set runtime->state to hw_params done */
|
||||
snd_pcm_stop(substream, SNDRV_PCM_STATE_SETUP);
|
||||
snd_pcm_stop_xrun(substream);
|
||||
had_substream_put(intelhaddata);
|
||||
}
|
||||
|
||||
|
@ -1414,7 +1414,7 @@ static void had_process_hot_unplug(struct snd_intelhad *intelhaddata)
|
|||
|
||||
/* Report to above ALSA layer */
|
||||
if (substream)
|
||||
snd_pcm_stop(substream, SNDRV_PCM_STATE_SETUP);
|
||||
snd_pcm_stop_xrun(substream);
|
||||
|
||||
out:
|
||||
snd_jack_report(intelhaddata->jack, 0);
|
||||
|
|
Loading…
Reference in New Issue