diff options
Diffstat (limited to 'sound/soc')
-rw-r--r-- | sound/soc/codecs/ak4642.c | 2 | ||||
-rw-r--r-- | sound/soc/codecs/sgtl5000.c | 25 | ||||
-rw-r--r-- | sound/soc/codecs/wm8994.c | 25 | ||||
-rw-r--r-- | sound/soc/imx/imx-audmux.c | 13 | ||||
-rw-r--r-- | sound/soc/imx/imx-pcm-dma-mx2.c | 3 | ||||
-rw-r--r-- | sound/soc/mxs/mxs-pcm.c | 2 | ||||
-rw-r--r-- | sound/soc/mxs/mxs-saif.c | 2 | ||||
-rw-r--r-- | sound/soc/omap/ams-delta.c | 34 | ||||
-rw-r--r-- | sound/soc/pxa/pxa2xx-ac97.c | 1 | ||||
-rw-r--r-- | sound/soc/pxa/pxa2xx-i2s.c | 1 | ||||
-rw-r--r-- | sound/soc/samsung/Kconfig | 12 | ||||
-rw-r--r-- | sound/soc/sh/siu_pcm.c | 4 | ||||
-rw-r--r-- | sound/soc/soc-core.c | 2 | ||||
-rw-r--r-- | sound/soc/tegra/tegra_i2s.c | 6 | ||||
-rw-r--r-- | sound/soc/tegra/tegra_spdif.c | 4 | ||||
-rw-r--r-- | sound/soc/txx9/txx9aclc.c | 2 |
16 files changed, 51 insertions, 87 deletions
diff --git a/sound/soc/codecs/ak4642.c b/sound/soc/codecs/ak4642.c index f8e10ced244..b3e24f28942 100644 --- a/sound/soc/codecs/ak4642.c +++ b/sound/soc/codecs/ak4642.c | |||
@@ -140,7 +140,7 @@ | |||
140 | * min : 0xFE : -115.0 dB | 140 | * min : 0xFE : -115.0 dB |
141 | * mute: 0xFF | 141 | * mute: 0xFF |
142 | */ | 142 | */ |
143 | static const DECLARE_TLV_DB_SCALE(out_tlv, -11500, 50, 1); | 143 | static const DECLARE_TLV_DB_SCALE(out_tlv, -11550, 50, 1); |
144 | 144 | ||
145 | static const struct snd_kcontrol_new ak4642_snd_controls[] = { | 145 | static const struct snd_kcontrol_new ak4642_snd_controls[] = { |
146 | 146 | ||
diff --git a/sound/soc/codecs/sgtl5000.c b/sound/soc/codecs/sgtl5000.c index d1926266fe0..8e92fb88ed0 100644 --- a/sound/soc/codecs/sgtl5000.c +++ b/sound/soc/codecs/sgtl5000.c | |||
@@ -143,11 +143,11 @@ static int mic_bias_event(struct snd_soc_dapm_widget *w, | |||
143 | } | 143 | } |
144 | 144 | ||
145 | /* | 145 | /* |
146 | * using codec assist to small pop, hp_powerup or lineout_powerup | 146 | * As manual described, ADC/DAC only works when VAG powerup, |
147 | * should stay setting until vag_powerup is fully ramped down, | 147 | * So enabled VAG before ADC/DAC up. |
148 | * vag fully ramped down require 400ms. | 148 | * In power down case, we need wait 400ms when vag fully ramped down. |
149 | */ | 149 | */ |
150 | static int small_pop_event(struct snd_soc_dapm_widget *w, | 150 | static int power_vag_event(struct snd_soc_dapm_widget *w, |
151 | struct snd_kcontrol *kcontrol, int event) | 151 | struct snd_kcontrol *kcontrol, int event) |
152 | { | 152 | { |
153 | switch (event) { | 153 | switch (event) { |
@@ -156,7 +156,7 @@ static int small_pop_event(struct snd_soc_dapm_widget *w, | |||
156 | SGTL5000_VAG_POWERUP, SGTL5000_VAG_POWERUP); | 156 | SGTL5000_VAG_POWERUP, SGTL5000_VAG_POWERUP); |
157 | break; | 157 | break; |
158 | 158 | ||
159 | case SND_SOC_DAPM_PRE_PMD: | 159 | case SND_SOC_DAPM_POST_PMD: |
160 | snd_soc_update_bits(w->codec, SGTL5000_CHIP_ANA_POWER, | 160 | snd_soc_update_bits(w->codec, SGTL5000_CHIP_ANA_POWER, |
161 | SGTL5000_VAG_POWERUP, 0); | 161 | SGTL5000_VAG_POWERUP, 0); |
162 | msleep(400); | 162 | msleep(400); |
@@ -201,12 +201,8 @@ static const struct snd_soc_dapm_widget sgtl5000_dapm_widgets[] = { | |||
201 | mic_bias_event, | 201 | mic_bias_event, |
202 | SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD), | 202 | SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD), |
203 | 203 | ||
204 | SND_SOC_DAPM_PGA_E("HP", SGTL5000_CHIP_ANA_POWER, 4, 0, NULL, 0, | 204 | SND_SOC_DAPM_PGA("HP", SGTL5000_CHIP_ANA_POWER, 4, 0, NULL, 0), |
205 | small_pop_event, | 205 | SND_SOC_DAPM_PGA("LO", SGTL5000_CHIP_ANA_POWER, 0, 0, NULL, 0), |
206 | SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_PRE_PMD), | ||
207 | SND_SOC_DAPM_PGA_E("LO", SGTL5000_CHIP_ANA_POWER, 0, 0, NULL, 0, | ||
208 | small_pop_event, | ||
209 | SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_PRE_PMD), | ||
210 | 206 | ||
211 | SND_SOC_DAPM_MUX("Capture Mux", SND_SOC_NOPM, 0, 0, &adc_mux), | 207 | SND_SOC_DAPM_MUX("Capture Mux", SND_SOC_NOPM, 0, 0, &adc_mux), |
212 | SND_SOC_DAPM_MUX("Headphone Mux", SND_SOC_NOPM, 0, 0, &dac_mux), | 208 | SND_SOC_DAPM_MUX("Headphone Mux", SND_SOC_NOPM, 0, 0, &dac_mux), |
@@ -221,8 +217,11 @@ static const struct snd_soc_dapm_widget sgtl5000_dapm_widgets[] = { | |||
221 | 0, SGTL5000_CHIP_DIG_POWER, | 217 | 0, SGTL5000_CHIP_DIG_POWER, |
222 | 1, 0), | 218 | 1, 0), |
223 | 219 | ||
224 | SND_SOC_DAPM_ADC("ADC", "Capture", SGTL5000_CHIP_ANA_POWER, 1, 0), | 220 | SND_SOC_DAPM_SUPPLY("VAG_POWER", SGTL5000_CHIP_ANA_POWER, 7, 0, |
221 | power_vag_event, | ||
222 | SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), | ||
225 | 223 | ||
224 | SND_SOC_DAPM_ADC("ADC", "Capture", SGTL5000_CHIP_ANA_POWER, 1, 0), | ||
226 | SND_SOC_DAPM_DAC("DAC", "Playback", SGTL5000_CHIP_ANA_POWER, 3, 0), | 225 | SND_SOC_DAPM_DAC("DAC", "Playback", SGTL5000_CHIP_ANA_POWER, 3, 0), |
227 | }; | 226 | }; |
228 | 227 | ||
@@ -231,9 +230,11 @@ static const struct snd_soc_dapm_route sgtl5000_dapm_routes[] = { | |||
231 | {"Capture Mux", "LINE_IN", "LINE_IN"}, /* line_in --> adc_mux */ | 230 | {"Capture Mux", "LINE_IN", "LINE_IN"}, /* line_in --> adc_mux */ |
232 | {"Capture Mux", "MIC_IN", "MIC_IN"}, /* mic_in --> adc_mux */ | 231 | {"Capture Mux", "MIC_IN", "MIC_IN"}, /* mic_in --> adc_mux */ |
233 | 232 | ||
233 | {"ADC", NULL, "VAG_POWER"}, | ||
234 | {"ADC", NULL, "Capture Mux"}, /* adc_mux --> adc */ | 234 | {"ADC", NULL, "Capture Mux"}, /* adc_mux --> adc */ |
235 | {"AIFOUT", NULL, "ADC"}, /* adc --> i2s_out */ | 235 | {"AIFOUT", NULL, "ADC"}, /* adc --> i2s_out */ |
236 | 236 | ||
237 | {"DAC", NULL, "VAG_POWER"}, | ||
237 | {"DAC", NULL, "AIFIN"}, /* i2s-->dac,skip audio mux */ | 238 | {"DAC", NULL, "AIFIN"}, /* i2s-->dac,skip audio mux */ |
238 | {"Headphone Mux", "DAC", "DAC"}, /* dac --> hp_mux */ | 239 | {"Headphone Mux", "DAC", "DAC"}, /* dac --> hp_mux */ |
239 | {"LO", NULL, "DAC"}, /* dac --> line_out */ | 240 | {"LO", NULL, "DAC"}, /* dac --> line_out */ |
diff --git a/sound/soc/codecs/wm8994.c b/sound/soc/codecs/wm8994.c index 10d27890eed..7c49642af05 100644 --- a/sound/soc/codecs/wm8994.c +++ b/sound/soc/codecs/wm8994.c | |||
@@ -2181,26 +2181,9 @@ static int wm8994_set_bias_level(struct snd_soc_codec *codec, | |||
2181 | case SND_SOC_BIAS_STANDBY: | 2181 | case SND_SOC_BIAS_STANDBY: |
2182 | if (codec->dapm.bias_level == SND_SOC_BIAS_OFF) { | 2182 | if (codec->dapm.bias_level == SND_SOC_BIAS_OFF) { |
2183 | switch (control->type) { | 2183 | switch (control->type) { |
2184 | case WM8994: | ||
2185 | if (wm8994->revision < 4) { | ||
2186 | /* Tweak DC servo and DSP | ||
2187 | * configuration for improved | ||
2188 | * performance. */ | ||
2189 | snd_soc_write(codec, 0x102, 0x3); | ||
2190 | snd_soc_write(codec, 0x56, 0x3); | ||
2191 | snd_soc_write(codec, 0x817, 0); | ||
2192 | snd_soc_write(codec, 0x102, 0); | ||
2193 | } | ||
2194 | break; | ||
2195 | |||
2196 | case WM8958: | 2184 | case WM8958: |
2197 | if (wm8994->revision == 0) { | 2185 | if (wm8994->revision == 0) { |
2198 | /* Optimise performance for rev A */ | 2186 | /* Optimise performance for rev A */ |
2199 | snd_soc_write(codec, 0x102, 0x3); | ||
2200 | snd_soc_write(codec, 0xcb, 0x81); | ||
2201 | snd_soc_write(codec, 0x817, 0); | ||
2202 | snd_soc_write(codec, 0x102, 0); | ||
2203 | |||
2204 | snd_soc_update_bits(codec, | 2187 | snd_soc_update_bits(codec, |
2205 | WM8958_CHARGE_PUMP_2, | 2188 | WM8958_CHARGE_PUMP_2, |
2206 | WM8958_CP_DISCH, | 2189 | WM8958_CP_DISCH, |
@@ -2208,13 +2191,7 @@ static int wm8994_set_bias_level(struct snd_soc_codec *codec, | |||
2208 | } | 2191 | } |
2209 | break; | 2192 | break; |
2210 | 2193 | ||
2211 | case WM1811: | 2194 | default: |
2212 | if (wm8994->revision < 2) { | ||
2213 | snd_soc_write(codec, 0x102, 0x3); | ||
2214 | snd_soc_write(codec, 0x5d, 0x7e); | ||
2215 | snd_soc_write(codec, 0x5e, 0x0); | ||
2216 | snd_soc_write(codec, 0x102, 0x0); | ||
2217 | } | ||
2218 | break; | 2195 | break; |
2219 | } | 2196 | } |
2220 | 2197 | ||
diff --git a/sound/soc/imx/imx-audmux.c b/sound/soc/imx/imx-audmux.c index a839494c5ea..0fe66c3dde1 100644 --- a/sound/soc/imx/imx-audmux.c +++ b/sound/soc/imx/imx-audmux.c | |||
@@ -79,14 +79,17 @@ static ssize_t audmux_read_file(struct file *file, char __user *user_buf, | |||
79 | if (!buf) | 79 | if (!buf) |
80 | return -ENOMEM; | 80 | return -ENOMEM; |
81 | 81 | ||
82 | if (!audmux_base) | ||
83 | return -ENOSYS; | ||
84 | |||
82 | if (audmux_clk) | 85 | if (audmux_clk) |
83 | clk_enable(audmux_clk); | 86 | clk_prepare_enable(audmux_clk); |
84 | 87 | ||
85 | ptcr = readl(audmux_base + IMX_AUDMUX_V2_PTCR(port)); | 88 | ptcr = readl(audmux_base + IMX_AUDMUX_V2_PTCR(port)); |
86 | pdcr = readl(audmux_base + IMX_AUDMUX_V2_PDCR(port)); | 89 | pdcr = readl(audmux_base + IMX_AUDMUX_V2_PDCR(port)); |
87 | 90 | ||
88 | if (audmux_clk) | 91 | if (audmux_clk) |
89 | clk_disable(audmux_clk); | 92 | clk_disable_unprepare(audmux_clk); |
90 | 93 | ||
91 | ret = snprintf(buf, PAGE_SIZE, "PDCR: %08x\nPTCR: %08x\n", | 94 | ret = snprintf(buf, PAGE_SIZE, "PDCR: %08x\nPTCR: %08x\n", |
92 | pdcr, ptcr); | 95 | pdcr, ptcr); |
@@ -158,7 +161,7 @@ static void __init audmux_debugfs_init(void) | |||
158 | return; | 161 | return; |
159 | } | 162 | } |
160 | 163 | ||
161 | for (i = 1; i < 8; i++) { | 164 | for (i = 0; i < MX31_AUDMUX_PORT6_SSI_PINS_6 + 1; i++) { |
162 | snprintf(buf, sizeof(buf), "ssi%d", i); | 165 | snprintf(buf, sizeof(buf), "ssi%d", i); |
163 | if (!debugfs_create_file(buf, 0444, audmux_debugfs_root, | 166 | if (!debugfs_create_file(buf, 0444, audmux_debugfs_root, |
164 | (void *)i, &audmux_debugfs_fops)) | 167 | (void *)i, &audmux_debugfs_fops)) |
@@ -237,13 +240,13 @@ int imx_audmux_v2_configure_port(unsigned int port, unsigned int ptcr, | |||
237 | return -ENOSYS; | 240 | return -ENOSYS; |
238 | 241 | ||
239 | if (audmux_clk) | 242 | if (audmux_clk) |
240 | clk_enable(audmux_clk); | 243 | clk_prepare_enable(audmux_clk); |
241 | 244 | ||
242 | writel(ptcr, audmux_base + IMX_AUDMUX_V2_PTCR(port)); | 245 | writel(ptcr, audmux_base + IMX_AUDMUX_V2_PTCR(port)); |
243 | writel(pdcr, audmux_base + IMX_AUDMUX_V2_PDCR(port)); | 246 | writel(pdcr, audmux_base + IMX_AUDMUX_V2_PDCR(port)); |
244 | 247 | ||
245 | if (audmux_clk) | 248 | if (audmux_clk) |
246 | clk_disable(audmux_clk); | 249 | clk_disable_unprepare(audmux_clk); |
247 | 250 | ||
248 | return 0; | 251 | return 0; |
249 | } | 252 | } |
diff --git a/sound/soc/imx/imx-pcm-dma-mx2.c b/sound/soc/imx/imx-pcm-dma-mx2.c index e43c8fa2788..6b818de2fc0 100644 --- a/sound/soc/imx/imx-pcm-dma-mx2.c +++ b/sound/soc/imx/imx-pcm-dma-mx2.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <linux/platform_device.h> | 21 | #include <linux/platform_device.h> |
22 | #include <linux/slab.h> | 22 | #include <linux/slab.h> |
23 | #include <linux/dmaengine.h> | 23 | #include <linux/dmaengine.h> |
24 | #include <linux/types.h> | ||
24 | 25 | ||
25 | #include <sound/core.h> | 26 | #include <sound/core.h> |
26 | #include <sound/initval.h> | 27 | #include <sound/initval.h> |
@@ -58,6 +59,8 @@ static int snd_imx_pcm_hw_params(struct snd_pcm_substream *substream, | |||
58 | if (ret) | 59 | if (ret) |
59 | return ret; | 60 | return ret; |
60 | 61 | ||
62 | slave_config.device_fc = false; | ||
63 | |||
61 | if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { | 64 | if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { |
62 | slave_config.dst_addr = dma_params->dma_addr; | 65 | slave_config.dst_addr = dma_params->dma_addr; |
63 | slave_config.dst_maxburst = dma_params->burstsize; | 66 | slave_config.dst_maxburst = dma_params->burstsize; |
diff --git a/sound/soc/mxs/mxs-pcm.c b/sound/soc/mxs/mxs-pcm.c index 6ca1f46d84a..e373fbbc97a 100644 --- a/sound/soc/mxs/mxs-pcm.c +++ b/sound/soc/mxs/mxs-pcm.c | |||
@@ -28,6 +28,7 @@ | |||
28 | #include <linux/platform_device.h> | 28 | #include <linux/platform_device.h> |
29 | #include <linux/slab.h> | 29 | #include <linux/slab.h> |
30 | #include <linux/dmaengine.h> | 30 | #include <linux/dmaengine.h> |
31 | #include <linux/fsl/mxs-dma.h> | ||
31 | 32 | ||
32 | #include <sound/core.h> | 33 | #include <sound/core.h> |
33 | #include <sound/initval.h> | 34 | #include <sound/initval.h> |
@@ -36,7 +37,6 @@ | |||
36 | #include <sound/soc.h> | 37 | #include <sound/soc.h> |
37 | #include <sound/dmaengine_pcm.h> | 38 | #include <sound/dmaengine_pcm.h> |
38 | 39 | ||
39 | #include <mach/dma.h> | ||
40 | #include "mxs-pcm.h" | 40 | #include "mxs-pcm.h" |
41 | 41 | ||
42 | struct mxs_pcm_dma_data { | 42 | struct mxs_pcm_dma_data { |
diff --git a/sound/soc/mxs/mxs-saif.c b/sound/soc/mxs/mxs-saif.c index 12be05b1688..53f4fd8fece 100644 --- a/sound/soc/mxs/mxs-saif.c +++ b/sound/soc/mxs/mxs-saif.c | |||
@@ -24,12 +24,12 @@ | |||
24 | #include <linux/clk.h> | 24 | #include <linux/clk.h> |
25 | #include <linux/delay.h> | 25 | #include <linux/delay.h> |
26 | #include <linux/time.h> | 26 | #include <linux/time.h> |
27 | #include <linux/fsl/mxs-dma.h> | ||
27 | #include <sound/core.h> | 28 | #include <sound/core.h> |
28 | #include <sound/pcm.h> | 29 | #include <sound/pcm.h> |
29 | #include <sound/pcm_params.h> | 30 | #include <sound/pcm_params.h> |
30 | #include <sound/soc.h> | 31 | #include <sound/soc.h> |
31 | #include <sound/saif.h> | 32 | #include <sound/saif.h> |
32 | #include <mach/dma.h> | ||
33 | #include <asm/mach-types.h> | 33 | #include <asm/mach-types.h> |
34 | #include <mach/hardware.h> | 34 | #include <mach/hardware.h> |
35 | #include <mach/mxs.h> | 35 | #include <mach/mxs.h> |
diff --git a/sound/soc/omap/ams-delta.c b/sound/soc/omap/ams-delta.c index 49fe63ce51f..7d4fa8ed669 100644 --- a/sound/soc/omap/ams-delta.c +++ b/sound/soc/omap/ams-delta.c | |||
@@ -426,29 +426,6 @@ static struct snd_soc_ops ams_delta_ops = { | |||
426 | }; | 426 | }; |
427 | 427 | ||
428 | 428 | ||
429 | /* Board specific codec bias level control */ | ||
430 | static int ams_delta_set_bias_level(struct snd_soc_card *card, | ||
431 | struct snd_soc_dapm_context *dapm, | ||
432 | enum snd_soc_bias_level level) | ||
433 | { | ||
434 | switch (level) { | ||
435 | case SND_SOC_BIAS_ON: | ||
436 | case SND_SOC_BIAS_PREPARE: | ||
437 | case SND_SOC_BIAS_STANDBY: | ||
438 | if (card->dapm.bias_level == SND_SOC_BIAS_OFF) | ||
439 | ams_delta_latch2_write(AMS_DELTA_LATCH2_MODEM_NRESET, | ||
440 | AMS_DELTA_LATCH2_MODEM_NRESET); | ||
441 | break; | ||
442 | case SND_SOC_BIAS_OFF: | ||
443 | if (card->dapm.bias_level != SND_SOC_BIAS_OFF) | ||
444 | ams_delta_latch2_write(AMS_DELTA_LATCH2_MODEM_NRESET, | ||
445 | 0); | ||
446 | } | ||
447 | card->dapm.bias_level = level; | ||
448 | |||
449 | return 0; | ||
450 | } | ||
451 | |||
452 | /* Digital mute implemented using modem/CPU multiplexer. | 429 | /* Digital mute implemented using modem/CPU multiplexer. |
453 | * Shares hardware with codec config pulse generation */ | 430 | * Shares hardware with codec config pulse generation */ |
454 | static bool ams_delta_muted = 1; | 431 | static bool ams_delta_muted = 1; |
@@ -512,9 +489,6 @@ static int ams_delta_cx20442_init(struct snd_soc_pcm_runtime *rtd) | |||
512 | ams_delta_ops.shutdown = ams_delta_shutdown; | 489 | ams_delta_ops.shutdown = ams_delta_shutdown; |
513 | } | 490 | } |
514 | 491 | ||
515 | /* Set codec bias level */ | ||
516 | ams_delta_set_bias_level(card, dapm, SND_SOC_BIAS_STANDBY); | ||
517 | |||
518 | /* Add hook switch - can be used to control the codec from userspace | 492 | /* Add hook switch - can be used to control the codec from userspace |
519 | * even if line discipline fails */ | 493 | * even if line discipline fails */ |
520 | ret = snd_soc_jack_new(rtd->codec, "hook_switch", | 494 | ret = snd_soc_jack_new(rtd->codec, "hook_switch", |
@@ -598,7 +572,6 @@ static struct snd_soc_card ams_delta_audio_card = { | |||
598 | .owner = THIS_MODULE, | 572 | .owner = THIS_MODULE, |
599 | .dai_link = &ams_delta_dai_link, | 573 | .dai_link = &ams_delta_dai_link, |
600 | .num_links = 1, | 574 | .num_links = 1, |
601 | .set_bias_level = ams_delta_set_bias_level, | ||
602 | }; | 575 | }; |
603 | 576 | ||
604 | /* Module init/exit */ | 577 | /* Module init/exit */ |
@@ -635,7 +608,7 @@ err: | |||
635 | platform_device_put(ams_delta_audio_platform_device); | 608 | platform_device_put(ams_delta_audio_platform_device); |
636 | return ret; | 609 | return ret; |
637 | } | 610 | } |
638 | module_init(ams_delta_module_init); | 611 | late_initcall(ams_delta_module_init); |
639 | 612 | ||
640 | static void __exit ams_delta_module_exit(void) | 613 | static void __exit ams_delta_module_exit(void) |
641 | { | 614 | { |
@@ -647,11 +620,6 @@ static void __exit ams_delta_module_exit(void) | |||
647 | ARRAY_SIZE(ams_delta_hook_switch_gpios), | 620 | ARRAY_SIZE(ams_delta_hook_switch_gpios), |
648 | ams_delta_hook_switch_gpios); | 621 | ams_delta_hook_switch_gpios); |
649 | 622 | ||
650 | /* Keep modem power on */ | ||
651 | ams_delta_set_bias_level(&ams_delta_audio_card, | ||
652 | &ams_delta_audio_card.rtd[0].codec->dapm, | ||
653 | SND_SOC_BIAS_STANDBY); | ||
654 | |||
655 | platform_device_unregister(cx20442_platform_device); | 623 | platform_device_unregister(cx20442_platform_device); |
656 | platform_device_unregister(ams_delta_audio_platform_device); | 624 | platform_device_unregister(ams_delta_audio_platform_device); |
657 | } | 625 | } |
diff --git a/sound/soc/pxa/pxa2xx-ac97.c b/sound/soc/pxa/pxa2xx-ac97.c index 4800d5fe568..06ea2744cc8 100644 --- a/sound/soc/pxa/pxa2xx-ac97.c +++ b/sound/soc/pxa/pxa2xx-ac97.c | |||
@@ -11,6 +11,7 @@ | |||
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
14 | #include <linux/io.h> | ||
14 | #include <linux/module.h> | 15 | #include <linux/module.h> |
15 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
16 | 17 | ||
diff --git a/sound/soc/pxa/pxa2xx-i2s.c b/sound/soc/pxa/pxa2xx-i2s.c index 609abd51e55..d08583790d2 100644 --- a/sound/soc/pxa/pxa2xx-i2s.c +++ b/sound/soc/pxa/pxa2xx-i2s.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/delay.h> | 17 | #include <linux/delay.h> |
18 | #include <linux/clk.h> | 18 | #include <linux/clk.h> |
19 | #include <linux/platform_device.h> | 19 | #include <linux/platform_device.h> |
20 | #include <linux/io.h> | ||
20 | #include <sound/core.h> | 21 | #include <sound/core.h> |
21 | #include <sound/pcm.h> | 22 | #include <sound/pcm.h> |
22 | #include <sound/initval.h> | 23 | #include <sound/initval.h> |
diff --git a/sound/soc/samsung/Kconfig b/sound/soc/samsung/Kconfig index f3417f2311b..fe3995ce9b3 100644 --- a/sound/soc/samsung/Kconfig +++ b/sound/soc/samsung/Kconfig | |||
@@ -1,8 +1,8 @@ | |||
1 | config SND_SOC_SAMSUNG | 1 | config SND_SOC_SAMSUNG |
2 | tristate "ASoC support for Samsung" | 2 | tristate "ASoC support for Samsung" |
3 | depends on ARCH_S3C2410 || ARCH_S3C64XX || ARCH_S5PC100 || ARCH_S5PV210 || ARCH_S5P64X0 || ARCH_EXYNOS4 | 3 | depends on ARCH_S3C24XX || ARCH_S3C64XX || ARCH_S5PC100 || ARCH_S5PV210 || ARCH_S5P64X0 || ARCH_EXYNOS4 |
4 | select S3C64XX_DMA if ARCH_S3C64XX | 4 | select S3C64XX_DMA if ARCH_S3C64XX |
5 | select S3C2410_DMA if ARCH_S3C2410 | 5 | select S3C2410_DMA if ARCH_S3C24XX |
6 | help | 6 | help |
7 | Say Y or M if you want to add support for codecs attached to | 7 | Say Y or M if you want to add support for codecs attached to |
8 | the Samsung SoCs' Audio interfaces. You will also need to | 8 | the Samsung SoCs' Audio interfaces. You will also need to |
@@ -84,7 +84,7 @@ config SND_SOC_SAMSUNG_SMDK2443_WM9710 | |||
84 | 84 | ||
85 | config SND_SOC_SAMSUNG_LN2440SBC_ALC650 | 85 | config SND_SOC_SAMSUNG_LN2440SBC_ALC650 |
86 | tristate "SoC AC97 Audio support for LN2440SBC - ALC650" | 86 | tristate "SoC AC97 Audio support for LN2440SBC - ALC650" |
87 | depends on SND_SOC_SAMSUNG && ARCH_S3C2410 | 87 | depends on SND_SOC_SAMSUNG && ARCH_S3C24XX |
88 | select S3C2410_DMA | 88 | select S3C2410_DMA |
89 | select AC97_BUS | 89 | select AC97_BUS |
90 | select SND_SOC_AC97_CODEC | 90 | select SND_SOC_AC97_CODEC |
@@ -95,7 +95,7 @@ config SND_SOC_SAMSUNG_LN2440SBC_ALC650 | |||
95 | 95 | ||
96 | config SND_SOC_SAMSUNG_S3C24XX_UDA134X | 96 | config SND_SOC_SAMSUNG_S3C24XX_UDA134X |
97 | tristate "SoC I2S Audio support UDA134X wired to a S3C24XX" | 97 | tristate "SoC I2S Audio support UDA134X wired to a S3C24XX" |
98 | depends on SND_SOC_SAMSUNG && ARCH_S3C2410 | 98 | depends on SND_SOC_SAMSUNG && ARCH_S3C24XX |
99 | select SND_S3C24XX_I2S | 99 | select SND_S3C24XX_I2S |
100 | select SND_SOC_L3 | 100 | select SND_SOC_L3 |
101 | select SND_SOC_UDA134X | 101 | select SND_SOC_UDA134X |
@@ -107,14 +107,14 @@ config SND_SOC_SAMSUNG_SIMTEC | |||
107 | 107 | ||
108 | config SND_SOC_SAMSUNG_SIMTEC_TLV320AIC23 | 108 | config SND_SOC_SAMSUNG_SIMTEC_TLV320AIC23 |
109 | tristate "SoC I2S Audio support for TLV320AIC23 on Simtec boards" | 109 | tristate "SoC I2S Audio support for TLV320AIC23 on Simtec boards" |
110 | depends on SND_SOC_SAMSUNG && ARCH_S3C2410 | 110 | depends on SND_SOC_SAMSUNG && ARCH_S3C24XX |
111 | select SND_S3C24XX_I2S | 111 | select SND_S3C24XX_I2S |
112 | select SND_SOC_TLV320AIC23 | 112 | select SND_SOC_TLV320AIC23 |
113 | select SND_SOC_SAMSUNG_SIMTEC | 113 | select SND_SOC_SAMSUNG_SIMTEC |
114 | 114 | ||
115 | config SND_SOC_SAMSUNG_SIMTEC_HERMES | 115 | config SND_SOC_SAMSUNG_SIMTEC_HERMES |
116 | tristate "SoC I2S Audio support for Simtec Hermes board" | 116 | tristate "SoC I2S Audio support for Simtec Hermes board" |
117 | depends on SND_SOC_SAMSUNG && ARCH_S3C2410 | 117 | depends on SND_SOC_SAMSUNG && ARCH_S3C24XX |
118 | select SND_S3C24XX_I2S | 118 | select SND_S3C24XX_I2S |
119 | select SND_SOC_TLV320AIC3X | 119 | select SND_SOC_TLV320AIC3X |
120 | select SND_SOC_SAMSUNG_SIMTEC | 120 | select SND_SOC_SAMSUNG_SIMTEC |
diff --git a/sound/soc/sh/siu_pcm.c b/sound/soc/sh/siu_pcm.c index 0193e595d41..5cfcc655e95 100644 --- a/sound/soc/sh/siu_pcm.c +++ b/sound/soc/sh/siu_pcm.c | |||
@@ -130,7 +130,7 @@ static int siu_pcm_wr_set(struct siu_port *port_info, | |||
130 | sg_dma_len(&sg) = size; | 130 | sg_dma_len(&sg) = size; |
131 | sg_dma_address(&sg) = buff; | 131 | sg_dma_address(&sg) = buff; |
132 | 132 | ||
133 | desc = siu_stream->chan->device->device_prep_slave_sg(siu_stream->chan, | 133 | desc = dmaengine_prep_slave_sg(siu_stream->chan, |
134 | &sg, 1, DMA_MEM_TO_DEV, DMA_PREP_INTERRUPT | DMA_CTRL_ACK); | 134 | &sg, 1, DMA_MEM_TO_DEV, DMA_PREP_INTERRUPT | DMA_CTRL_ACK); |
135 | if (!desc) { | 135 | if (!desc) { |
136 | dev_err(dev, "Failed to allocate a dma descriptor\n"); | 136 | dev_err(dev, "Failed to allocate a dma descriptor\n"); |
@@ -180,7 +180,7 @@ static int siu_pcm_rd_set(struct siu_port *port_info, | |||
180 | sg_dma_len(&sg) = size; | 180 | sg_dma_len(&sg) = size; |
181 | sg_dma_address(&sg) = buff; | 181 | sg_dma_address(&sg) = buff; |
182 | 182 | ||
183 | desc = siu_stream->chan->device->device_prep_slave_sg(siu_stream->chan, | 183 | desc = dmaengine_prep_slave_sg(siu_stream->chan, |
184 | &sg, 1, DMA_DEV_TO_MEM, DMA_PREP_INTERRUPT | DMA_CTRL_ACK); | 184 | &sg, 1, DMA_DEV_TO_MEM, DMA_PREP_INTERRUPT | DMA_CTRL_ACK); |
185 | if (!desc) { | 185 | if (!desc) { |
186 | dev_err(dev, "Failed to allocate dma descriptor\n"); | 186 | dev_err(dev, "Failed to allocate dma descriptor\n"); |
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index a4deebc0801..8d2ebf502df 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c | |||
@@ -1087,6 +1087,8 @@ static int soc_probe_platform(struct snd_soc_card *card, | |||
1087 | snd_soc_dapm_new_controls(&platform->dapm, | 1087 | snd_soc_dapm_new_controls(&platform->dapm, |
1088 | driver->dapm_widgets, driver->num_dapm_widgets); | 1088 | driver->dapm_widgets, driver->num_dapm_widgets); |
1089 | 1089 | ||
1090 | platform->dapm.idle_bias_off = 1; | ||
1091 | |||
1090 | if (driver->probe) { | 1092 | if (driver->probe) { |
1091 | ret = driver->probe(platform); | 1093 | ret = driver->probe(platform); |
1092 | if (ret < 0) { | 1094 | if (ret < 0) { |
diff --git a/sound/soc/tegra/tegra_i2s.c b/sound/soc/tegra/tegra_i2s.c index 33509de5254..e53349912b2 100644 --- a/sound/soc/tegra/tegra_i2s.c +++ b/sound/soc/tegra/tegra_i2s.c | |||
@@ -79,11 +79,15 @@ static int tegra_i2s_show(struct seq_file *s, void *unused) | |||
79 | struct tegra_i2s *i2s = s->private; | 79 | struct tegra_i2s *i2s = s->private; |
80 | int i; | 80 | int i; |
81 | 81 | ||
82 | clk_enable(i2s->clk_i2s); | ||
83 | |||
82 | for (i = 0; i < ARRAY_SIZE(regs); i++) { | 84 | for (i = 0; i < ARRAY_SIZE(regs); i++) { |
83 | u32 val = tegra_i2s_read(i2s, regs[i].offset); | 85 | u32 val = tegra_i2s_read(i2s, regs[i].offset); |
84 | seq_printf(s, "%s = %08x\n", regs[i].name, val); | 86 | seq_printf(s, "%s = %08x\n", regs[i].name, val); |
85 | } | 87 | } |
86 | 88 | ||
89 | clk_disable(i2s->clk_i2s); | ||
90 | |||
87 | return 0; | 91 | return 0; |
88 | } | 92 | } |
89 | 93 | ||
@@ -112,7 +116,7 @@ static void tegra_i2s_debug_remove(struct tegra_i2s *i2s) | |||
112 | debugfs_remove(i2s->debug); | 116 | debugfs_remove(i2s->debug); |
113 | } | 117 | } |
114 | #else | 118 | #else |
115 | static inline void tegra_i2s_debug_add(struct tegra_i2s *i2s, int id) | 119 | static inline void tegra_i2s_debug_add(struct tegra_i2s *i2s) |
116 | { | 120 | { |
117 | } | 121 | } |
118 | 122 | ||
diff --git a/sound/soc/tegra/tegra_spdif.c b/sound/soc/tegra/tegra_spdif.c index 475428cf270..9ff2c601445 100644 --- a/sound/soc/tegra/tegra_spdif.c +++ b/sound/soc/tegra/tegra_spdif.c | |||
@@ -79,11 +79,15 @@ static int tegra_spdif_show(struct seq_file *s, void *unused) | |||
79 | struct tegra_spdif *spdif = s->private; | 79 | struct tegra_spdif *spdif = s->private; |
80 | int i; | 80 | int i; |
81 | 81 | ||
82 | clk_enable(spdif->clk_spdif_out); | ||
83 | |||
82 | for (i = 0; i < ARRAY_SIZE(regs); i++) { | 84 | for (i = 0; i < ARRAY_SIZE(regs); i++) { |
83 | u32 val = tegra_spdif_read(spdif, regs[i].offset); | 85 | u32 val = tegra_spdif_read(spdif, regs[i].offset); |
84 | seq_printf(s, "%s = %08x\n", regs[i].name, val); | 86 | seq_printf(s, "%s = %08x\n", regs[i].name, val); |
85 | } | 87 | } |
86 | 88 | ||
89 | clk_disable(spdif->clk_spdif_out); | ||
90 | |||
87 | return 0; | 91 | return 0; |
88 | } | 92 | } |
89 | 93 | ||
diff --git a/sound/soc/txx9/txx9aclc.c b/sound/soc/txx9/txx9aclc.c index 21554611557..b609d2c64c5 100644 --- a/sound/soc/txx9/txx9aclc.c +++ b/sound/soc/txx9/txx9aclc.c | |||
@@ -132,7 +132,7 @@ txx9aclc_dma_submit(struct txx9aclc_dmadata *dmadata, dma_addr_t buf_dma_addr) | |||
132 | sg_set_page(&sg, pfn_to_page(PFN_DOWN(buf_dma_addr)), | 132 | sg_set_page(&sg, pfn_to_page(PFN_DOWN(buf_dma_addr)), |
133 | dmadata->frag_bytes, buf_dma_addr & (PAGE_SIZE - 1)); | 133 | dmadata->frag_bytes, buf_dma_addr & (PAGE_SIZE - 1)); |
134 | sg_dma_address(&sg) = buf_dma_addr; | 134 | sg_dma_address(&sg) = buf_dma_addr; |
135 | desc = chan->device->device_prep_slave_sg(chan, &sg, 1, | 135 | desc = dmaengine_prep_slave_sg(chan, &sg, 1, |
136 | dmadata->substream->stream == SNDRV_PCM_STREAM_PLAYBACK ? | 136 | dmadata->substream->stream == SNDRV_PCM_STREAM_PLAYBACK ? |
137 | DMA_MEM_TO_DEV : DMA_DEV_TO_MEM, | 137 | DMA_MEM_TO_DEV : DMA_DEV_TO_MEM, |
138 | DMA_PREP_INTERRUPT | DMA_CTRL_ACK); | 138 | DMA_PREP_INTERRUPT | DMA_CTRL_ACK); |