summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2017-02-15 21:36:38 +0100
committerTakashi Iwai <tiwai@suse.de>2017-02-16 09:22:42 +0100
commit5def90196b52d0bbec4f662448e25f2a4c06ddbc (patch)
tree6159e0ca5fcc5fd4b2868690b7088ceca59adbc9 /sound
parentb9bacf275ca2eeb8e8fa85c1705d07e2475f1aaa (diff)
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>
Diffstat (limited to 'sound')
-rw-r--r--sound/x86/intel_hdmi_audio.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sound/x86/intel_hdmi_audio.c b/sound/x86/intel_hdmi_audio.c
index a30ca03e49ae..a7343f2d2730 100644
--- a/sound/x86/intel_hdmi_audio.c
+++ b/sound/x86/intel_hdmi_audio.c
@@ -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);