1 From 65978c7586dc8fe403a3a3bebf40de881b8d2741 Mon Sep 17 00:00:00 2001
2 From: popcornmix <popcornmix@gmail.com>
3 Date: Fri, 29 Apr 2016 17:27:37 +0100
4 Subject: [PATCH 312/423] Revert "bcm2835: interpolate audio delay"
6 This reverts commit 83eca613d0eddd2c8299f114b8fe573ccaffdefc.
8 sound/arm/bcm2835-pcm.c | 12 +-----------
9 sound/arm/bcm2835.h | 1 -
10 2 files changed, 1 insertion(+), 12 deletions(-)
12 --- a/sound/arm/bcm2835-pcm.c
13 +++ b/sound/arm/bcm2835-pcm.c
15 /* hardware definition */
16 static struct snd_pcm_hardware snd_bcm2835_playback_hw = {
17 .info = (SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER |
18 - SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_BATCH),
19 + SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID),
20 .formats = SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE,
21 .rates = SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
23 @@ -99,8 +99,6 @@ static irqreturn_t bcm2835_playback_fifo
24 alsa_stream->pos %= alsa_stream->buffer_size;
27 - alsa_stream->interpolate_start = ktime_get_ns();
29 if (alsa_stream->substream) {
31 snd_pcm_period_elapsed(alsa_stream->substream);
32 @@ -401,7 +399,6 @@ static int snd_bcm2835_pcm_prepare(struc
33 alsa_stream->buffer_size = snd_pcm_lib_buffer_bytes(substream);
34 alsa_stream->period_size = snd_pcm_lib_period_bytes(substream);
36 - alsa_stream->interpolate_start = ktime_get_ns();
38 audio_debug("buffer_size=%d, period_size=%d pos=%d frame_bits=%d\n",
39 alsa_stream->buffer_size, alsa_stream->period_size,
40 @@ -498,7 +495,6 @@ snd_bcm2835_pcm_pointer(struct snd_pcm_s
42 struct snd_pcm_runtime *runtime = substream->runtime;
43 bcm2835_alsa_stream_t *alsa_stream = runtime->private_data;
44 - u64 now = ktime_get_ns();
46 audio_info(" .. IN\n");
48 @@ -507,12 +503,6 @@ snd_bcm2835_pcm_pointer(struct snd_pcm_s
49 frames_to_bytes(runtime, runtime->control->appl_ptr),
52 - /* Give userspace better delay reporting by interpolating between GPU
53 - * notifications, assuming audio speed is close enough to the clock
55 - if (alsa_stream->interpolate_start && alsa_stream->interpolate_start < now)
56 - runtime->delay = -(int)div_u64((now - alsa_stream->interpolate_start) * runtime->rate, 1000000000);
58 audio_info(" .. OUT\n");
59 return snd_pcm_indirect_playback_pointer(substream,
60 &alsa_stream->pcm_indirect,
61 --- a/sound/arm/bcm2835.h
62 +++ b/sound/arm/bcm2835.h
63 @@ -137,7 +137,6 @@ typedef struct bcm2835_alsa_stream {
65 unsigned int buffer_size;
66 unsigned int period_size;
67 - u64 interpolate_start;
69 uint32_t enable_fifo_irq;
70 irq_handler_t fifo_irq_handler;