aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/soc/atmel/Kconfig9
-rw-r--r--sound/soc/atmel/Makefile2
-rw-r--r--sound/soc/atmel/atmel-pcm-dma.c4
-rw-r--r--sound/soc/atmel/atmel-pcm-pdc.c79
-rw-r--r--sound/soc/atmel/atmel-pcm.c121
-rw-r--r--sound/soc/atmel/atmel-pcm.h5
-rw-r--r--sound/soc/codecs/ab8500-codec.c2
-rw-r--r--sound/soc/codecs/ak4554.c2
-rw-r--r--sound/soc/codecs/ak4642.c37
-rw-r--r--sound/soc/codecs/arizona.c6
-rw-r--r--sound/soc/codecs/wm5102.c1
11 files changed, 125 insertions, 143 deletions
diff --git a/sound/soc/atmel/Kconfig b/sound/soc/atmel/Kconfig
index 1579e994acf8..e7d08806f3e9 100644
--- a/sound/soc/atmel/Kconfig
+++ b/sound/soc/atmel/Kconfig
@@ -25,7 +25,8 @@ config SND_ATMEL_SOC_SSC
25 25
26config SND_AT91_SOC_SAM9G20_WM8731 26config SND_AT91_SOC_SAM9G20_WM8731
27 tristate "SoC Audio support for WM8731-based At91sam9g20 evaluation board" 27 tristate "SoC Audio support for WM8731-based At91sam9g20 evaluation board"
28 depends on ARCH_AT91 && ATMEL_SSC && SND_ATMEL_SOC 28 depends on ARCH_AT91 || COMPILE_TEST
29 depends on ATMEL_SSC && SND_ATMEL_SOC && SND_SOC_I2C_AND_SPI
29 select SND_ATMEL_SOC_PDC 30 select SND_ATMEL_SOC_PDC
30 select SND_ATMEL_SOC_SSC 31 select SND_ATMEL_SOC_SSC
31 select SND_SOC_WM8731 32 select SND_SOC_WM8731
@@ -35,7 +36,8 @@ config SND_AT91_SOC_SAM9G20_WM8731
35 36
36config SND_ATMEL_SOC_WM8904 37config SND_ATMEL_SOC_WM8904
37 tristate "Atmel ASoC driver for boards using WM8904 codec" 38 tristate "Atmel ASoC driver for boards using WM8904 codec"
38 depends on ARCH_AT91 && ATMEL_SSC && SND_ATMEL_SOC && I2C 39 depends on ARCH_AT91 || COMPILE_TEST
40 depends on ATMEL_SSC && SND_ATMEL_SOC && I2C
39 select SND_ATMEL_SOC_SSC 41 select SND_ATMEL_SOC_SSC
40 select SND_ATMEL_SOC_DMA 42 select SND_ATMEL_SOC_DMA
41 select SND_SOC_WM8904 43 select SND_SOC_WM8904
@@ -45,7 +47,8 @@ config SND_ATMEL_SOC_WM8904
45 47
46config SND_AT91_SOC_SAM9X5_WM8731 48config SND_AT91_SOC_SAM9X5_WM8731
47 tristate "SoC Audio support for WM8731-based at91sam9x5 board" 49 tristate "SoC Audio support for WM8731-based at91sam9x5 board"
48 depends on ARCH_AT91 && ATMEL_SSC && SND_ATMEL_SOC 50 depends on ARCH_AT91 || COMPILE_TEST
51 depends on ATMEL_SSC && SND_ATMEL_SOC && SND_SOC_I2C_AND_SPI
49 select SND_ATMEL_SOC_SSC 52 select SND_ATMEL_SOC_SSC
50 select SND_ATMEL_SOC_DMA 53 select SND_ATMEL_SOC_DMA
51 select SND_SOC_WM8731 54 select SND_SOC_WM8731
diff --git a/sound/soc/atmel/Makefile b/sound/soc/atmel/Makefile
index 466a821da98c..b327e5cc8de3 100644
--- a/sound/soc/atmel/Makefile
+++ b/sound/soc/atmel/Makefile
@@ -1,10 +1,8 @@
1# AT91 Platform Support 1# AT91 Platform Support
2snd-soc-atmel-pcm-objs := atmel-pcm.o
3snd-soc-atmel-pcm-pdc-objs := atmel-pcm-pdc.o 2snd-soc-atmel-pcm-pdc-objs := atmel-pcm-pdc.o
4snd-soc-atmel-pcm-dma-objs := atmel-pcm-dma.o 3snd-soc-atmel-pcm-dma-objs := atmel-pcm-dma.o
5snd-soc-atmel_ssc_dai-objs := atmel_ssc_dai.o 4snd-soc-atmel_ssc_dai-objs := atmel_ssc_dai.o
6 5
7obj-$(CONFIG_SND_ATMEL_SOC) += snd-soc-atmel-pcm.o
8obj-$(CONFIG_SND_ATMEL_SOC_PDC) += snd-soc-atmel-pcm-pdc.o 6obj-$(CONFIG_SND_ATMEL_SOC_PDC) += snd-soc-atmel-pcm-pdc.o
9obj-$(CONFIG_SND_ATMEL_SOC_DMA) += snd-soc-atmel-pcm-dma.o 7obj-$(CONFIG_SND_ATMEL_SOC_DMA) += snd-soc-atmel-pcm-dma.o
10obj-$(CONFIG_SND_ATMEL_SOC_SSC) += snd-soc-atmel_ssc_dai.o 8obj-$(CONFIG_SND_ATMEL_SOC_SSC) += snd-soc-atmel_ssc_dai.o
diff --git a/sound/soc/atmel/atmel-pcm-dma.c b/sound/soc/atmel/atmel-pcm-dma.c
index b8e7bad05eb1..b6625c8c411b 100644
--- a/sound/soc/atmel/atmel-pcm-dma.c
+++ b/sound/soc/atmel/atmel-pcm-dma.c
@@ -54,7 +54,7 @@ static const struct snd_pcm_hardware atmel_pcm_dma_hardware = {
54 .period_bytes_max = 2 * 0xffff, /* if 2 bytes format */ 54 .period_bytes_max = 2 * 0xffff, /* if 2 bytes format */
55 .periods_min = 8, 55 .periods_min = 8,
56 .periods_max = 1024, /* no limit */ 56 .periods_max = 1024, /* no limit */
57 .buffer_bytes_max = ATMEL_SSC_DMABUF_SIZE, 57 .buffer_bytes_max = 512 * 1024,
58}; 58};
59 59
60/** 60/**
@@ -119,7 +119,7 @@ static int atmel_pcm_configure_dma(struct snd_pcm_substream *substream,
119static const struct snd_dmaengine_pcm_config atmel_dmaengine_pcm_config = { 119static const struct snd_dmaengine_pcm_config atmel_dmaengine_pcm_config = {
120 .prepare_slave_config = atmel_pcm_configure_dma, 120 .prepare_slave_config = atmel_pcm_configure_dma,
121 .pcm_hardware = &atmel_pcm_dma_hardware, 121 .pcm_hardware = &atmel_pcm_dma_hardware,
122 .prealloc_buffer_size = ATMEL_SSC_DMABUF_SIZE, 122 .prealloc_buffer_size = 64 * 1024,
123}; 123};
124 124
125int atmel_pcm_dma_platform_register(struct device *dev) 125int atmel_pcm_dma_platform_register(struct device *dev)
diff --git a/sound/soc/atmel/atmel-pcm-pdc.c b/sound/soc/atmel/atmel-pcm-pdc.c
index a366b3503c28..da861b44413f 100644
--- a/sound/soc/atmel/atmel-pcm-pdc.c
+++ b/sound/soc/atmel/atmel-pcm-pdc.c
@@ -47,6 +47,85 @@
47#include "atmel-pcm.h" 47#include "atmel-pcm.h"
48 48
49 49
50static int atmel_pcm_preallocate_dma_buffer(struct snd_pcm *pcm,
51 int stream)
52{
53 struct snd_pcm_substream *substream = pcm->streams[stream].substream;
54 struct snd_dma_buffer *buf = &substream->dma_buffer;
55 size_t size = ATMEL_SSC_DMABUF_SIZE;
56
57 buf->dev.type = SNDRV_DMA_TYPE_DEV;
58 buf->dev.dev = pcm->card->dev;
59 buf->private_data = NULL;
60 buf->area = dma_alloc_coherent(pcm->card->dev, size,
61 &buf->addr, GFP_KERNEL);
62 pr_debug("atmel-pcm: alloc dma buffer: area=%p, addr=%p, size=%zu\n",
63 (void *)buf->area, (void *)(long)buf->addr, size);
64
65 if (!buf->area)
66 return -ENOMEM;
67
68 buf->bytes = size;
69 return 0;
70}
71
72static int atmel_pcm_mmap(struct snd_pcm_substream *substream,
73 struct vm_area_struct *vma)
74{
75 return remap_pfn_range(vma, vma->vm_start,
76 substream->dma_buffer.addr >> PAGE_SHIFT,
77 vma->vm_end - vma->vm_start, vma->vm_page_prot);
78}
79
80static int atmel_pcm_new(struct snd_soc_pcm_runtime *rtd)
81{
82 struct snd_card *card = rtd->card->snd_card;
83 struct snd_pcm *pcm = rtd->pcm;
84 int ret;
85
86 ret = dma_coerce_mask_and_coherent(card->dev, DMA_BIT_MASK(32));
87 if (ret)
88 return ret;
89
90 if (pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream) {
91 pr_debug("atmel-pcm: allocating PCM playback DMA buffer\n");
92 ret = atmel_pcm_preallocate_dma_buffer(pcm,
93 SNDRV_PCM_STREAM_PLAYBACK);
94 if (ret)
95 goto out;
96 }
97
98 if (pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream) {
99 pr_debug("atmel-pcm: allocating PCM capture DMA buffer\n");
100 ret = atmel_pcm_preallocate_dma_buffer(pcm,
101 SNDRV_PCM_STREAM_CAPTURE);
102 if (ret)
103 goto out;
104 }
105 out:
106 return ret;
107}
108
109static void atmel_pcm_free(struct snd_pcm *pcm)
110{
111 struct snd_pcm_substream *substream;
112 struct snd_dma_buffer *buf;
113 int stream;
114
115 for (stream = 0; stream < 2; stream++) {
116 substream = pcm->streams[stream].substream;
117 if (!substream)
118 continue;
119
120 buf = &substream->dma_buffer;
121 if (!buf->area)
122 continue;
123 dma_free_coherent(pcm->card->dev, buf->bytes,
124 buf->area, buf->addr);
125 buf->area = NULL;
126 }
127}
128
50/*--------------------------------------------------------------------------*\ 129/*--------------------------------------------------------------------------*\
51 * Hardware definition 130 * Hardware definition
52\*--------------------------------------------------------------------------*/ 131\*--------------------------------------------------------------------------*/
diff --git a/sound/soc/atmel/atmel-pcm.c b/sound/soc/atmel/atmel-pcm.c
deleted file mode 100644
index 8ae3fa5ac60a..000000000000
--- a/sound/soc/atmel/atmel-pcm.c
+++ /dev/null
@@ -1,121 +0,0 @@
1/*
2 * atmel-pcm.c -- ALSA PCM interface for the Atmel atmel SoC.
3 *
4 * Copyright (C) 2005 SAN People
5 * Copyright (C) 2008 Atmel
6 *
7 * Authors: Sedji Gaouaou <sedji.gaouaou@atmel.com>
8 *
9 * Based on at91-pcm. by:
10 * Frank Mandarino <fmandarino@endrelia.com>
11 * Copyright 2006 Endrelia Technologies Inc.
12 *
13 * Based on pxa2xx-pcm.c by:
14 *
15 * Author: Nicolas Pitre
16 * Created: Nov 30, 2004
17 * Copyright: (C) 2004 MontaVista Software, Inc.
18 *
19 * This program is free software; you can redistribute it and/or modify
20 * it under the terms of the GNU General Public License as published by
21 * the Free Software Foundation; either version 2 of the License, or
22 * (at your option) any later version.
23 *
24 * This program is distributed in the hope that it will be useful,
25 * but WITHOUT ANY WARRANTY; without even the implied warranty of
26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27 * GNU General Public License for more details.
28 *
29 * You should have received a copy of the GNU General Public License
30 * along with this program; if not, write to the Free Software
31 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
32 */
33
34#include <linux/module.h>
35#include <linux/dma-mapping.h>
36#include <sound/pcm.h>
37#include <sound/soc.h>
38#include "atmel-pcm.h"
39
40static int atmel_pcm_preallocate_dma_buffer(struct snd_pcm *pcm,
41 int stream)
42{
43 struct snd_pcm_substream *substream = pcm->streams[stream].substream;
44 struct snd_dma_buffer *buf = &substream->dma_buffer;
45 size_t size = ATMEL_SSC_DMABUF_SIZE;
46
47 buf->dev.type = SNDRV_DMA_TYPE_DEV;
48 buf->dev.dev = pcm->card->dev;
49 buf->private_data = NULL;
50 buf->area = dma_alloc_coherent(pcm->card->dev, size,
51 &buf->addr, GFP_KERNEL);
52 pr_debug("atmel-pcm: alloc dma buffer: area=%p, addr=%p, size=%zu\n",
53 (void *)buf->area, (void *)(long)buf->addr, size);
54
55 if (!buf->area)
56 return -ENOMEM;
57
58 buf->bytes = size;
59 return 0;
60}
61
62int atmel_pcm_mmap(struct snd_pcm_substream *substream,
63 struct vm_area_struct *vma)
64{
65 return remap_pfn_range(vma, vma->vm_start,
66 substream->dma_buffer.addr >> PAGE_SHIFT,
67 vma->vm_end - vma->vm_start, vma->vm_page_prot);
68}
69EXPORT_SYMBOL_GPL(atmel_pcm_mmap);
70
71int atmel_pcm_new(struct snd_soc_pcm_runtime *rtd)
72{
73 struct snd_card *card = rtd->card->snd_card;
74 struct snd_pcm *pcm = rtd->pcm;
75 int ret;
76
77 ret = dma_coerce_mask_and_coherent(card->dev, DMA_BIT_MASK(32));
78 if (ret)
79 return ret;
80
81 if (pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream) {
82 pr_debug("atmel-pcm: allocating PCM playback DMA buffer\n");
83 ret = atmel_pcm_preallocate_dma_buffer(pcm,
84 SNDRV_PCM_STREAM_PLAYBACK);
85 if (ret)
86 goto out;
87 }
88
89 if (pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream) {
90 pr_debug("atmel-pcm: allocating PCM capture DMA buffer\n");
91 ret = atmel_pcm_preallocate_dma_buffer(pcm,
92 SNDRV_PCM_STREAM_CAPTURE);
93 if (ret)
94 goto out;
95 }
96 out:
97 return ret;
98}
99EXPORT_SYMBOL_GPL(atmel_pcm_new);
100
101void atmel_pcm_free(struct snd_pcm *pcm)
102{
103 struct snd_pcm_substream *substream;
104 struct snd_dma_buffer *buf;
105 int stream;
106
107 for (stream = 0; stream < 2; stream++) {
108 substream = pcm->streams[stream].substream;
109 if (!substream)
110 continue;
111
112 buf = &substream->dma_buffer;
113 if (!buf->area)
114 continue;
115 dma_free_coherent(pcm->card->dev, buf->bytes,
116 buf->area, buf->addr);
117 buf->area = NULL;
118 }
119}
120EXPORT_SYMBOL_GPL(atmel_pcm_free);
121
diff --git a/sound/soc/atmel/atmel-pcm.h b/sound/soc/atmel/atmel-pcm.h
index 12ae814eff21..6eaf081cad50 100644
--- a/sound/soc/atmel/atmel-pcm.h
+++ b/sound/soc/atmel/atmel-pcm.h
@@ -83,11 +83,6 @@ struct atmel_pcm_dma_params {
83#define ssc_readx(base, reg) (__raw_readl((base) + (reg))) 83#define ssc_readx(base, reg) (__raw_readl((base) + (reg)))
84#define ssc_writex(base, reg, value) __raw_writel((value), (base) + (reg)) 84#define ssc_writex(base, reg, value) __raw_writel((value), (base) + (reg))
85 85
86int atmel_pcm_new(struct snd_soc_pcm_runtime *rtd);
87void atmel_pcm_free(struct snd_pcm *pcm);
88int atmel_pcm_mmap(struct snd_pcm_substream *substream,
89 struct vm_area_struct *vma);
90
91#if defined(CONFIG_SND_ATMEL_SOC_PDC) || \ 86#if defined(CONFIG_SND_ATMEL_SOC_PDC) || \
92 defined(CONFIG_SND_ATMEL_SOC_PDC_MODULE) 87 defined(CONFIG_SND_ATMEL_SOC_PDC_MODULE)
93int atmel_pcm_pdc_platform_register(struct device *dev); 88int atmel_pcm_pdc_platform_register(struct device *dev);
diff --git a/sound/soc/codecs/ab8500-codec.c b/sound/soc/codecs/ab8500-codec.c
index 7895689588da..88ca9cb0ce79 100644
--- a/sound/soc/codecs/ab8500-codec.c
+++ b/sound/soc/codecs/ab8500-codec.c
@@ -2003,7 +2003,6 @@ static int ab8500_audio_setup_mics(struct snd_soc_codec *codec,
2003 2003
2004 return 0; 2004 return 0;
2005} 2005}
2006EXPORT_SYMBOL_GPL(ab8500_audio_setup_mics);
2007 2006
2008static int ab8500_audio_set_ear_cmv(struct snd_soc_codec *codec, 2007static int ab8500_audio_set_ear_cmv(struct snd_soc_codec *codec,
2009 enum ear_cm_voltage ear_cmv) 2008 enum ear_cm_voltage ear_cmv)
@@ -2036,7 +2035,6 @@ static int ab8500_audio_set_ear_cmv(struct snd_soc_codec *codec,
2036 2035
2037 return 0; 2036 return 0;
2038} 2037}
2039EXPORT_SYMBOL_GPL(ab8500_audio_set_ear_cmv);
2040 2038
2041static int ab8500_audio_set_bit_delay(struct snd_soc_dai *dai, 2039static int ab8500_audio_set_bit_delay(struct snd_soc_dai *dai,
2042 unsigned int delay) 2040 unsigned int delay)
diff --git a/sound/soc/codecs/ak4554.c b/sound/soc/codecs/ak4554.c
index 16ce9f9fefa1..298dedc05140 100644
--- a/sound/soc/codecs/ak4554.c
+++ b/sound/soc/codecs/ak4554.c
@@ -84,7 +84,7 @@ static int ak4554_soc_remove(struct platform_device *pdev)
84 return 0; 84 return 0;
85} 85}
86 86
87static struct of_device_id ak4554_of_match[] = { 87static const struct of_device_id ak4554_of_match[] = {
88 { .compatible = "asahi-kasei,ak4554" }, 88 { .compatible = "asahi-kasei,ak4554" },
89 {}, 89 {},
90}; 90};
diff --git a/sound/soc/codecs/ak4642.c b/sound/soc/codecs/ak4642.c
index fba80f30de4d..13585e88f597 100644
--- a/sound/soc/codecs/ak4642.c
+++ b/sound/soc/codecs/ak4642.c
@@ -97,6 +97,9 @@
97#define PMMP (1 << 2) /* MPWR pin Power Management */ 97#define PMMP (1 << 2) /* MPWR pin Power Management */
98#define MGAIN0 (1 << 0) /* MIC amp gain*/ 98#define MGAIN0 (1 << 0) /* MIC amp gain*/
99 99
100/* SG_SL2 */
101#define LOPS (1 << 6) /* Stero Line-out Power Save Mode */
102
100/* TIMER */ 103/* TIMER */
101#define ZTM(param) ((param & 0x3) << 4) /* ALC Zero Crossing TimeOut */ 104#define ZTM(param) ((param & 0x3) << 4) /* ALC Zero Crossing TimeOut */
102#define WTM(param) (((param & 0x4) << 4) | ((param & 0x3) << 2)) 105#define WTM(param) (((param & 0x4) << 4) | ((param & 0x3) << 2))
@@ -168,6 +171,29 @@ static const struct snd_kcontrol_new ak4642_lout_mixer_controls[] = {
168 SOC_DAPM_SINGLE("DACL", SG_SL1, 4, 1, 0), 171 SOC_DAPM_SINGLE("DACL", SG_SL1, 4, 1, 0),
169}; 172};
170 173
174/* event handlers */
175static int ak4642_lout_event(struct snd_soc_dapm_widget *w,
176 struct snd_kcontrol *kcontrol, int event)
177{
178 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm);
179
180 switch (event) {
181 case SND_SOC_DAPM_PRE_PMD:
182 case SND_SOC_DAPM_PRE_PMU:
183 /* Power save mode ON */
184 snd_soc_update_bits(codec, SG_SL2, LOPS, LOPS);
185 break;
186 case SND_SOC_DAPM_POST_PMU:
187 case SND_SOC_DAPM_POST_PMD:
188 /* Power save mode OFF */
189 mdelay(300);
190 snd_soc_update_bits(codec, SG_SL2, LOPS, 0);
191 break;
192 }
193
194 return 0;
195}
196
171static const struct snd_soc_dapm_widget ak4642_dapm_widgets[] = { 197static const struct snd_soc_dapm_widget ak4642_dapm_widgets[] = {
172 198
173 /* Outputs */ 199 /* Outputs */
@@ -182,12 +208,15 @@ static const struct snd_soc_dapm_widget ak4642_dapm_widgets[] = {
182 208
183 SND_SOC_DAPM_PGA("DACH", MD_CTL4, 0, 0, NULL, 0), 209 SND_SOC_DAPM_PGA("DACH", MD_CTL4, 0, 0, NULL, 0),
184 210
185 SND_SOC_DAPM_MIXER("LINEOUT Mixer", PW_MGMT1, 3, 0, 211 SND_SOC_DAPM_MIXER_E("LINEOUT Mixer", PW_MGMT1, 3, 0,
186 &ak4642_lout_mixer_controls[0], 212 &ak4642_lout_mixer_controls[0],
187 ARRAY_SIZE(ak4642_lout_mixer_controls)), 213 ARRAY_SIZE(ak4642_lout_mixer_controls),
214 ak4642_lout_event,
215 SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU |
216 SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD),
188 217
189 /* DAC */ 218 /* DAC */
190 SND_SOC_DAPM_DAC("DAC", "HiFi Playback", PW_MGMT1, 2, 0), 219 SND_SOC_DAPM_DAC("DAC", NULL, PW_MGMT1, 2, 0),
191}; 220};
192 221
193static const struct snd_soc_dapm_route ak4642_intercon[] = { 222static const struct snd_soc_dapm_route ak4642_intercon[] = {
@@ -205,6 +234,8 @@ static const struct snd_soc_dapm_route ak4642_intercon[] = {
205 {"DACH", NULL, "DAC"}, 234 {"DACH", NULL, "DAC"},
206 235
207 {"LINEOUT Mixer", "DACL", "DAC"}, 236 {"LINEOUT Mixer", "DACL", "DAC"},
237
238 { "DAC", NULL, "Playback" },
208}; 239};
209 240
210/* 241/*
diff --git a/sound/soc/codecs/arizona.c b/sound/soc/codecs/arizona.c
index 29202610dd0d..9015b44a9e11 100644
--- a/sound/soc/codecs/arizona.c
+++ b/sound/soc/codecs/arizona.c
@@ -1901,7 +1901,7 @@ static int arizona_is_enabled_fll(struct arizona_fll *fll)
1901static int arizona_enable_fll(struct arizona_fll *fll) 1901static int arizona_enable_fll(struct arizona_fll *fll)
1902{ 1902{
1903 struct arizona *arizona = fll->arizona; 1903 struct arizona *arizona = fll->arizona;
1904 int ret; 1904 unsigned long time_left;
1905 bool use_sync = false; 1905 bool use_sync = false;
1906 int already_enabled = arizona_is_enabled_fll(fll); 1906 int already_enabled = arizona_is_enabled_fll(fll);
1907 struct arizona_fll_cfg cfg; 1907 struct arizona_fll_cfg cfg;
@@ -1977,9 +1977,9 @@ static int arizona_enable_fll(struct arizona_fll *fll)
1977 regmap_update_bits_async(arizona->regmap, fll->base + 1, 1977 regmap_update_bits_async(arizona->regmap, fll->base + 1,
1978 ARIZONA_FLL1_FREERUN, 0); 1978 ARIZONA_FLL1_FREERUN, 0);
1979 1979
1980 ret = wait_for_completion_timeout(&fll->ok, 1980 time_left = wait_for_completion_timeout(&fll->ok,
1981 msecs_to_jiffies(250)); 1981 msecs_to_jiffies(250));
1982 if (ret == 0) 1982 if (time_left == 0)
1983 arizona_fll_warn(fll, "Timed out waiting for lock\n"); 1983 arizona_fll_warn(fll, "Timed out waiting for lock\n");
1984 1984
1985 return 0; 1985 return 0;
diff --git a/sound/soc/codecs/wm5102.c b/sound/soc/codecs/wm5102.c
index 6d0fe0ac95a3..0c6d1bc0526e 100644
--- a/sound/soc/codecs/wm5102.c
+++ b/sound/soc/codecs/wm5102.c
@@ -1861,7 +1861,6 @@ static unsigned int wm5102_digital_vu[] = {
1861 ARIZONA_DAC_DIGITAL_VOLUME_2L, 1861 ARIZONA_DAC_DIGITAL_VOLUME_2L,
1862 ARIZONA_DAC_DIGITAL_VOLUME_2R, 1862 ARIZONA_DAC_DIGITAL_VOLUME_2R,
1863 ARIZONA_DAC_DIGITAL_VOLUME_3L, 1863 ARIZONA_DAC_DIGITAL_VOLUME_3L,
1864 ARIZONA_DAC_DIGITAL_VOLUME_3R,
1865 ARIZONA_DAC_DIGITAL_VOLUME_4L, 1864 ARIZONA_DAC_DIGITAL_VOLUME_4L,
1866 ARIZONA_DAC_DIGITAL_VOLUME_4R, 1865 ARIZONA_DAC_DIGITAL_VOLUME_4R,
1867 ARIZONA_DAC_DIGITAL_VOLUME_5L, 1866 ARIZONA_DAC_DIGITAL_VOLUME_5L,