From: Pierre-Louis Bossart Date: Fri, 6 Feb 2015 21:55:50 +0000 (-0600) Subject: ALSA: pcm: don't override timestamp unconditionally X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=0d59b814353d397ff5d00ac33acd536030252a98;p=GitHub%2FLineageOS%2FG12%2Fandroid_kernel_amlogic_linux-4.9.git ALSA: pcm: don't override timestamp unconditionally timestamp in RUNNING mode is already taken in update_hw_ptr routine, getting a new timestamp introduces offset between hw_ptr, audio_tstamp and system time Add else condition to read timestamp as fallback and only when enabled Signed-off-by: Pierre-Louis Bossart Signed-off-by: Takashi Iwai --- diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c index 932234d87927..4ecd35fbfe3f 100644 --- a/sound/core/pcm_native.c +++ b/sound/core/pcm_native.c @@ -720,8 +720,11 @@ int snd_pcm_status(struct snd_pcm_substream *substream, runtime->status->audio_tstamp; goto _tstamp_end; } + } else { + /* get tstamp only in fallback mode and only if enabled */ + if (runtime->tstamp_mode == SNDRV_PCM_TSTAMP_ENABLE) + snd_pcm_gettime(runtime, &status->tstamp); } - snd_pcm_gettime(runtime, &status->tstamp); _tstamp_end: status->appl_ptr = runtime->control->appl_ptr; status->hw_ptr = runtime->status->hw_ptr;