brcm2708: update linux 4.4 patches to latest version
[openwrt/openwrt.git] / target / linux / brcm2708 / patches-4.4 / 0312-Revert-bcm2835-interpolate-audio-delay.patch
1 From af3ae835c6da0f3383aac9957df02f7160c9d2b4 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] Revert "bcm2835: interpolate audio delay"
5
6 This reverts commit 83eca613d0eddd2c8299f114b8fe573ccaffdefc.
7 ---
8 sound/arm/bcm2835-pcm.c | 12 +-----------
9 sound/arm/bcm2835.h | 1 -
10 2 files changed, 1 insertion(+), 12 deletions(-)
11
12 --- a/sound/arm/bcm2835-pcm.c
13 +++ b/sound/arm/bcm2835-pcm.c
14 @@ -25,7 +25,7 @@
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,
22 .rate_min = 8000,
23 @@ -99,8 +99,6 @@ static irqreturn_t bcm2835_playback_fifo
24 alsa_stream->pos %= alsa_stream->buffer_size;
25 }
26
27 - alsa_stream->interpolate_start = ktime_get_ns();
28 -
29 if (alsa_stream->substream) {
30 if (new_period)
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);
35 alsa_stream->pos = 0;
36 - alsa_stream->interpolate_start = ktime_get_ns();
37
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
41 {
42 struct snd_pcm_runtime *runtime = substream->runtime;
43 bcm2835_alsa_stream_t *alsa_stream = runtime->private_data;
44 - u64 now = ktime_get_ns();
45
46 audio_info(" .. IN\n");
47
48 @@ -507,12 +503,6 @@ snd_bcm2835_pcm_pointer(struct snd_pcm_s
49 frames_to_bytes(runtime, runtime->control->appl_ptr),
50 alsa_stream->pos);
51
52 - /* Give userspace better delay reporting by interpolating between GPU
53 - * notifications, assuming audio speed is close enough to the clock
54 - * used for ktime */
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);
57 -
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 {
64 unsigned int pos;
65 unsigned int buffer_size;
66 unsigned int period_size;
67 - u64 interpolate_start;
68
69 uint32_t enable_fifo_irq;
70 irq_handler_t fifo_irq_handler;