[alsa-devel] [PATCH] ALSA: Make snd_pcm_debug_name usable outside pcm_lib
Takashi Iwai
tiwai at suse.de
Fri Jul 22 12:22:08 CEST 2011
At Fri, 22 Jul 2011 22:05:26 +1200,
linux at audioscience.com wrote:
>
> From: Eliot Blennerhassett <eblennerhassett at audioscience.com>
>
> Formatting a PCM name is useful for module debug too.
> Add snd_prefix when making function public.
>
> Signed-off-by: Eliot Blennerhassett <eblennerhassett at audioscience.com>
It'd need EXPORT_SYMBOL*() in addition.
Or, this can be defined as an inline function.
It's just a call of snprintf() with the passed arguments, after all.
thanks,
Takashi
> ---
> include/sound/pcm.h | 12 ++++++++++++
> sound/core/pcm_lib.c | 10 +++++-----
> sound/pci/asihpi/asihpi.c | 21 ---------------------
> 3 files changed, 17 insertions(+), 26 deletions(-)
>
> diff --git a/include/sound/pcm.h b/include/sound/pcm.h
> index e1bad11..c83c754 100644
> --- a/include/sound/pcm.h
> +++ b/include/sound/pcm.h
> @@ -507,6 +507,18 @@ void snd_pcm_detach_substream(struct snd_pcm_substream *substream);
> void snd_pcm_vma_notify_data(void *client, void *data);
> int snd_pcm_mmap_data(struct snd_pcm_substream *substream, struct file *file, struct vm_area_struct *area);
>
> +
> +#if defined CONFIG_SND_DEBUG
> +void snd_pcm_debug_name(struct snd_pcm_substream *substream,
> + char *name, size_t len);
> +#else
> +static inline void
> +snd_pcm_debug_name(struct snd_pcm_substream *substream, char *buf, size_t size)
> +{
> + *buf = 0;
> +}
> +#endif
> +
> /*
> * PCM library
> */
> diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c
> index f134130..f82329d 100644
> --- a/sound/core/pcm_lib.c
> +++ b/sound/core/pcm_lib.c
> @@ -128,7 +128,7 @@ void snd_pcm_playback_silence(struct snd_pcm_substream *substream, snd_pcm_ufram
> }
> }
>
> -static void pcm_debug_name(struct snd_pcm_substream *substream,
> +void snd_pcm_debug_name(struct snd_pcm_substream *substream,
> char *name, size_t len)
> {
> snprintf(name, len, "pcmC%dD%d%c:%d",
> @@ -168,7 +168,7 @@ static void xrun(struct snd_pcm_substream *substream)
> snd_pcm_stop(substream, SNDRV_PCM_STATE_XRUN);
> if (xrun_debug(substream, XRUN_DEBUG_BASIC)) {
> char name[16];
> - pcm_debug_name(substream, name, sizeof(name));
> + snd_pcm_debug_name(substream, name, sizeof(name));
> snd_printd(KERN_DEBUG "XRUN: %s\n", name);
> dump_stack_on_xrun(substream);
> }
> @@ -243,7 +243,7 @@ static void xrun_log_show(struct snd_pcm_substream *substream)
> return;
> if (xrun_debug(substream, XRUN_DEBUG_LOGONCE) && log->hit)
> return;
> - pcm_debug_name(substream, name, sizeof(name));
> + snd_pcm_debug_name(substream, name, sizeof(name));
> for (cnt = 0, idx = log->idx; cnt < XRUN_LOG_CNT; cnt++) {
> entry = &log->entries[idx];
> if (entry->period_size == 0)
> @@ -319,7 +319,7 @@ static int snd_pcm_update_hw_ptr0(struct snd_pcm_substream *substream,
> if (pos >= runtime->buffer_size) {
> if (printk_ratelimit()) {
> char name[16];
> - pcm_debug_name(substream, name, sizeof(name));
> + snd_pcm_debug_name(substream, name, sizeof(name));
> xrun_log_show(substream);
> snd_printd(KERN_ERR "BUG: %s, pos = %ld, "
> "buffer size = %ld, period size = %ld\n",
> @@ -364,7 +364,7 @@ static int snd_pcm_update_hw_ptr0(struct snd_pcm_substream *substream,
> if (xrun_debug(substream, in_interrupt ?
> XRUN_DEBUG_PERIODUPDATE : XRUN_DEBUG_HWPTRUPDATE)) {
> char name[16];
> - pcm_debug_name(substream, name, sizeof(name));
> + snd_pcm_debug_name(substream, name, sizeof(name));
> snd_printd("%s_update: %s: pos=%u/%u/%u, "
> "hwptr=%ld/%ld/%ld/%ld\n",
> in_interrupt ? "period" : "hwptr",
> diff --git a/sound/pci/asihpi/asihpi.c b/sound/pci/asihpi/asihpi.c
> index b941d25..eae62eb 100644
> --- a/sound/pci/asihpi/asihpi.c
> +++ b/sound/pci/asihpi/asihpi.c
> @@ -41,31 +41,10 @@
> #include <sound/tlv.h>
> #include <sound/hwdep.h>
>
> -
> MODULE_LICENSE("GPL");
> MODULE_AUTHOR("AudioScience inc. <support at audioscience.com>");
> MODULE_DESCRIPTION("AudioScience ALSA ASI5000 ASI6000 ASI87xx ASI89xx");
>
> -#if defined CONFIG_SND_DEBUG
> -/* copied from pcm_lib.c, hope later patch will make that version public
> -and this copy can be removed */
> -static inline void
> -snd_pcm_debug_name(struct snd_pcm_substream *substream, char *buf, size_t size)
> -{
> - snprintf(buf, size, "pcmC%dD%d%c:%d",
> - substream->pcm->card->number,
> - substream->pcm->device,
> - substream->stream ? 'c' : 'p',
> - substream->number);
> -}
> -#else
> -static inline void
> -snd_pcm_debug_name(struct snd_pcm_substream *substream, char *buf, size_t size)
> -{
> - *buf = 0;
> -}
> -#endif
> -
> #if defined CONFIG_SND_DEBUG_VERBOSE
> /**
> * snd_printddd - very verbose debug printk
> --
> 1.7.0.4
>
More information about the Alsa-devel
mailing list