aboutsummaryrefslogtreecommitdiffstats
path: root/sound/core/pcm.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2018-07-04 15:08:05 +0200
committerTakashi Iwai <tiwai@suse.de>2018-07-04 15:34:59 +0200
commite647f5a5c5d165c87750e8c0dcbe341b5a378ffd (patch)
treeea8b6fe2e8fb03060f2886fe4166a1014d25154b /sound/core/pcm.c
parentALSA: pcm: trace XRUN event at injection, too (diff)
downloadlinux-dev-e647f5a5c5d165c87750e8c0dcbe341b5a378ffd.tar.xz
linux-dev-e647f5a5c5d165c87750e8c0dcbe341b5a378ffd.zip
ALSA: pcm: Use snd_pcm_stop_xrun() for xrun injection
Basically the xrun injection routine can simply call the standard helper snd_pcm_stop_xrun(), but with one exception: it may be called even when the stream is closed. Make snd_pcm_stop_xrun() more robust and check the NULL runtime state, and simplify xrun injection code by calling it. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/core/pcm.c')
-rw-r--r--sound/core/pcm.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/sound/core/pcm.c b/sound/core/pcm.c
index 6f037a4b8b52..fdb9b92fc8d6 100644
--- a/sound/core/pcm.c
+++ b/sound/core/pcm.c
@@ -492,13 +492,8 @@ static void snd_pcm_xrun_injection_write(struct snd_info_entry *entry,
struct snd_info_buffer *buffer)
{
struct snd_pcm_substream *substream = entry->private_data;
- struct snd_pcm_runtime *runtime;
- snd_pcm_stream_lock_irq(substream);
- runtime = substream->runtime;
- if (runtime && runtime->status->state == SNDRV_PCM_STATE_RUNNING)
- __snd_pcm_xrun(substream);
- snd_pcm_stream_unlock_irq(substream);
+ snd_pcm_stop_xrun(substream);
}
static void snd_pcm_xrun_debug_read(struct snd_info_entry *entry,