diff options
author | Takashi Iwai <tiwai@suse.de> | 2009-06-08 15:58:48 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2009-06-08 16:01:47 +0200 |
commit | c00701101b82f2bc61dfc259748ec6e5288af6a9 (patch) | |
tree | e3c9c70ed0c36387f030e268c5f7baf30ab25814 /sound/core | |
parent | ALSA: pcm - Fix update of runtime->hw_ptr_interrupt (diff) | |
download | linux-c00701101b82f2bc61dfc259748ec6e5288af6a9.tar.xz linux-c00701101b82f2bc61dfc259748ec6e5288af6a9.zip |
ALSA: pcm - A helper function to compose PCM stream name for debug prints
Use a common helper function for the PCM stream name displayed in
XRUN and buffer-pointer debug prints.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/core')
-rw-r--r-- | sound/core/pcm_lib.c | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c index adb306fd5525..2288fa07bf59 100644 --- a/sound/core/pcm_lib.c +++ b/sound/core/pcm_lib.c @@ -136,6 +136,16 @@ void snd_pcm_playback_silence(struct snd_pcm_substream *substream, snd_pcm_ufram dump_stack(); \ } while (0) +static void pcm_debug_name(struct snd_pcm_substream *substream, + char *name, size_t len) +{ + snprintf(name, len, "pcmC%dD%d%c:%d", + substream->pcm->card->number, + substream->pcm->device, + substream->stream ? 'c' : 'p', + substream->number); +} + static void xrun(struct snd_pcm_substream *substream) { struct snd_pcm_runtime *runtime = substream->runtime; @@ -144,10 +154,9 @@ static void xrun(struct snd_pcm_substream *substream) snd_pcm_gettime(runtime, (struct timespec *)&runtime->status->tstamp); snd_pcm_stop(substream, SNDRV_PCM_STATE_XRUN); if (xrun_debug(substream, 1)) { - snd_printd(KERN_DEBUG "XRUN: pcmC%dD%d%c\n", - substream->pcm->card->number, - substream->pcm->device, - substream->stream ? 'c' : 'p'); + char name[16]; + pcm_debug_name(substream, name, sizeof(name)); + snd_printd(KERN_DEBUG "XRUN: %s\n", name); dump_stack_on_xrun(substream); } } @@ -163,9 +172,11 @@ snd_pcm_update_hw_ptr_pos(struct snd_pcm_substream *substream, return pos; /* XRUN */ if (pos >= runtime->buffer_size) { if (printk_ratelimit()) { - snd_printd(KERN_ERR "BUG: stream = %i, pos = 0x%lx, " + char name[16]; + pcm_debug_name(substream, name, sizeof(name)); + snd_printd(KERN_ERR "BUG: %s, pos = 0x%lx, " "buffer size = 0x%lx, period size = 0x%lx\n", - substream->stream, pos, runtime->buffer_size, + name, pos, runtime->buffer_size, runtime->period_size); } pos = 0; |