From fd7a638c2f1f30eef20101e0c0bc5d5de5f2d788 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sat, 15 Nov 2014 23:39:55 +0100 Subject: [PATCH] headers: snd_pcm_stop_xrun() This is used by the saa7134-alsa.c driver. Signed-off-by: Hauke Mehrtens --- backport/backport-include/sound/pcm.h | 29 +++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 backport/backport-include/sound/pcm.h diff --git a/backport/backport-include/sound/pcm.h b/backport/backport-include/sound/pcm.h new file mode 100644 index 000000000000..469e871b3c9a --- /dev/null +++ b/backport/backport-include/sound/pcm.h @@ -0,0 +1,29 @@ +#ifndef __BACKPORT_SOUND_PCM_H +#define __BACKPORT_SOUND_PCM_H +#include_next +#include + +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,19,0) +/** + * snd_pcm_stop_xrun - stop the running streams as XRUN + * @substream: the PCM substream instance + * + * This stops the given running substream (and all linked substreams) as XRUN. + * Unlike snd_pcm_stop(), this function takes the substream lock by itself. + * + * Return: Zero if successful, or a negative error code. + */ +static inline int snd_pcm_stop_xrun(struct snd_pcm_substream *substream) +{ + unsigned long flags; + int ret = 0; + + snd_pcm_stream_lock_irqsave(substream, flags); + if (snd_pcm_running(substream)) + ret = snd_pcm_stop(substream, SNDRV_PCM_STATE_XRUN); + snd_pcm_stream_unlock_irqrestore(substream, flags); + return ret; +} +#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,19,0) */ + +#endif /* __BACKPORT_SOUND_PCM_H */ -- 2.30.2