[alsa-devel] [for 2.6.34][PATCH] ALSA: pcm_lib - fix xrun functionality

Takashi Iwai tiwai at suse.de
Fri Mar 26 15:29:56 CET 2010


At Fri, 26 Mar 2010 16:07:25 +0200,
Jarkko Nikula wrote:
> 
> The commit 4d96eb255c53ab5e39b37fd4d484ea3dc39ab456 broke the interrupt
> time xrun functionality (stream stop etc.) if the CONFIG_SND_PCM_XRUN_DEBUG
> is not set. This is because the xrun() is null defined without it.
> 
> Fix this by letting the function xrun() to be always defined as it was
> before.

Thanks, that's likely the problem Pavel has seen, but never reproduced
on Jaroslav or my machine.

Applied now to sound git tree.


Takashi


> Signed-off-by: Jarkko Nikula <jhnikula at gmail.com>
> Cc: Jaroslav Kysela <perex at perex.cz>
> ---
>  sound/core/pcm_lib.c |    6 ++++--
>  1 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c
> index b546ac2..a2ff861 100644
> --- a/sound/core/pcm_lib.c
> +++ b/sound/core/pcm_lib.c
> @@ -148,6 +148,9 @@ static void pcm_debug_name(struct snd_pcm_substream *substream,
>  
>  #define xrun_debug(substream, mask) \
>  			((substream)->pstr->xrun_debug & (mask))
> +#else
> +#define xrun_debug(substream, mask)	0
> +#endif
>  
>  #define dump_stack_on_xrun(substream) do {			\
>  		if (xrun_debug(substream, XRUN_DEBUG_STACK))	\
> @@ -169,6 +172,7 @@ static void xrun(struct snd_pcm_substream *substream)
>  	}
>  }
>  
> +#ifdef CONFIG_SND_PCM_XRUN_DEBUG
>  #define hw_ptr_error(substream, fmt, args...)				\
>  	do {								\
>  		if (xrun_debug(substream, XRUN_DEBUG_BASIC)) {		\
> @@ -255,8 +259,6 @@ static void xrun_log_show(struct snd_pcm_substream *substream)
>  
>  #else /* ! CONFIG_SND_PCM_XRUN_DEBUG */
>  
> -#define xrun_debug(substream, mask)	0
> -#define xrun(substream)			do { } while (0)
>  #define hw_ptr_error(substream, fmt, args...) do { } while (0)
>  #define xrun_log(substream, pos)	do { } while (0)
>  #define xrun_log_show(substream)	do { } while (0)
> -- 
> 1.7.0
> 


More information about the Alsa-devel mailing list