[ALSA] PCM core - remove SNDRV_PCM_TSTAMP_MMAP condition in snd_pcm_status()
Jaroslav Kysela [Tue, 8 Jan 2008 11:24:01 +0000 (12:24 +0100)]
The condition caused that the returned ring buffer position does not match
with timestamp when SNDRV_PCM_TSTAMP_MMAP mode was enabled. Removing
condition makes unified behaviour and interrupt based timestamp can be
accessed via PCM_IOCTL_SYNC_PTR or mmaped status area.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>

sound/core/pcm_native.c

index 2e7b1e6..3fc33de 100644 (file)
@@ -593,14 +593,9 @@ int snd_pcm_status(struct snd_pcm_substream *substream,
        if (status->state == SNDRV_PCM_STATE_OPEN)
                goto _end;
        status->trigger_tstamp = runtime->trigger_tstamp;
-       if (snd_pcm_running(substream)) {
+       if (snd_pcm_running(substream))
                snd_pcm_update_hw_ptr(substream);
-               if (runtime->tstamp_mode == SNDRV_PCM_TSTAMP_MMAP)
-                       status->tstamp = runtime->status->tstamp;
-               else
-                       snd_pcm_gettime(runtime, &status->tstamp);
-       } else
-               snd_pcm_gettime(runtime, &status->tstamp);
+       snd_pcm_gettime(runtime, &status->tstamp);
        status->appl_ptr = runtime->control->appl_ptr;
        status->hw_ptr = runtime->status->hw_ptr;
        if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {