brcm2708: update linux 4.4 patches to latest version
[oweals/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;