diff mbox

ALSA: core: Report audio_tstamp in snd_pcm_sync_ptr

Message ID 20180421125740.10931-1-tiwai@suse.de (mailing list archive)
State New, archived
Headers show

Commit Message

Takashi Iwai April 21, 2018, 12:57 p.m. UTC
From: David Henningsson <diwic@ubuntu.com>

It looks like a simple mistake that this struct member
was forgotten.

Audio_tstamp isn't used much, and on some archs (such as x86) this
ioctl is not used by default, so that might be the reason why this
has slipped for so long.

Fixes: 4eeaaeaea1ce ("ALSA: core: add hooks for audio timestamps")
Signed-off-by: David Henningsson <diwic@ubuntu.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>

---

 sound/core/pcm_native.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Takashi Sakamoto April 22, 2018, 12:55 p.m. UTC | #1
Hi,

On Apr 21 2018 21:57, Takashi Iwai wrote:
> From: David Henningsson <diwic@ubuntu.com>
> 
> It looks like a simple mistake that this struct member
> was forgotten.
> 
> Audio_tstamp isn't used much, and on some archs (such as x86) this
> ioctl is not used by default, so that might be the reason why this
> has slipped for so long.

Reviewed-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>

However, with ALSA PCM interface v2.0.14 or later, theoretically in a 
case of driver's support for SNDRV_PCM_INFO_SYNC_APPLPTR, I perhaps can 
see the slip on x86 platform. In detail, please read below commits in order:
  * 42f945970af9 ('ALSA: pcm: Add the explicit appl_ptr sync support')
  * 4b671f577474 ('ALSA: pcm: Add an ioctl to specify the supported
    protocol version')
  * b602aa8eb1a0 ('ALSA: pcm: Disable only control mmap for explicit
    appl_ptr sync')

> Fixes: 4eeaaeaea1ce ("ALSA: core: add hooks for audio timestamps")
> Signed-off-by: David Henningsson <diwic@ubuntu.com>
> Cc: <stable@vger.kernel.org>

# v3.8+

$ git name-rev --tags 4eeaaeaea1cec
4eeaaeaea1cec tags/v3.8-rc1~29^2~127

> Signed-off-by: Takashi Iwai <tiwai@suse.de>
> ---
> 
>   sound/core/pcm_native.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
> index 35ffcce..632228b 100644
> --- a/sound/core/pcm_native.c
> +++ b/sound/core/pcm_native.c
> @@ -2751,6 +2751,7 @@ static int snd_pcm_sync_ptr(struct snd_pcm_substream *substream,
>   	sync_ptr.s.status.hw_ptr = status->hw_ptr;
>   	sync_ptr.s.status.tstamp = status->tstamp;
>   	sync_ptr.s.status.suspended_state = status->suspended_state;
> +	sync_ptr.s.status.audio_tstamp = status->audio_tstamp;
>   	snd_pcm_stream_unlock_irq(substream);
>   	if (copy_to_user(_sync_ptr, &sync_ptr, sizeof(sync_ptr)))
>   		return -EFAULT;


Thanks

Takashi Sakamoto
diff mbox

Patch

diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
index 35ffcce..632228b 100644
--- a/sound/core/pcm_native.c
+++ b/sound/core/pcm_native.c
@@ -2751,6 +2751,7 @@  static int snd_pcm_sync_ptr(struct snd_pcm_substream *substream,
 	sync_ptr.s.status.hw_ptr = status->hw_ptr;
 	sync_ptr.s.status.tstamp = status->tstamp;
 	sync_ptr.s.status.suspended_state = status->suspended_state;
+	sync_ptr.s.status.audio_tstamp = status->audio_tstamp;
 	snd_pcm_stream_unlock_irq(substream);
 	if (copy_to_user(_sync_ptr, &sync_ptr, sizeof(sync_ptr)))
 		return -EFAULT;