diff options
| -rw-r--r-- | MAINTAINERS | 1 | ||||
| -rw-r--r-- | sound/soc/blackfin/bf5xx-ad193x.c | 2 | ||||
| -rw-r--r-- | sound/soc/codecs/ad193x.c | 11 | ||||
| -rw-r--r-- | sound/soc/codecs/ad193x.h | 5 | ||||
| -rw-r--r-- | sound/soc/codecs/sta32x.c | 1 | ||||
| -rw-r--r-- | sound/soc/codecs/wm8962.c | 12 | ||||
| -rw-r--r-- | sound/soc/codecs/wm8996.c | 28 | ||||
| -rw-r--r-- | sound/soc/ep93xx/ep93xx-i2s.c | 5 | ||||
| -rw-r--r-- | sound/soc/fsl/fsl_dma.c | 2 | ||||
| -rw-r--r-- | sound/soc/fsl/mpc8610_hpcd.c | 18 | ||||
| -rw-r--r-- | sound/soc/fsl/p1022_ds.c | 4 | ||||
| -rw-r--r-- | sound/soc/kirkwood/kirkwood-i2s.c | 2 | ||||
| -rw-r--r-- | sound/soc/omap/ams-delta.c | 6 | ||||
| -rw-r--r-- | sound/soc/samsung/Kconfig | 1 | ||||
| -rw-r--r-- | sound/soc/samsung/h1940_uda1380.c | 1 | ||||
| -rw-r--r-- | sound/soc/samsung/rx1950_uda1380.c | 1 | ||||
| -rw-r--r-- | sound/soc/samsung/speyside_wm8962.c | 6 | ||||
| -rw-r--r-- | sound/soc/soc-core.c | 2 | ||||
| -rw-r--r-- | sound/soc/soc-io.c | 23 | ||||
| -rw-r--r-- | sound/soc/soc-jack.c | 2 | ||||
| -rw-r--r-- | sound/soc/soc-pcm.c | 3 | ||||
| -rw-r--r-- | sound/soc/tegra/tegra_wm8903.c | 4 |
22 files changed, 95 insertions, 45 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 46e3e6b99220..4f555d8e5346 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
| @@ -5532,6 +5532,7 @@ F: include/media/*7146* | |||
| 5532 | 5532 | ||
| 5533 | SAMSUNG AUDIO (ASoC) DRIVERS | 5533 | SAMSUNG AUDIO (ASoC) DRIVERS |
| 5534 | M: Jassi Brar <jassisinghbrar@gmail.com> | 5534 | M: Jassi Brar <jassisinghbrar@gmail.com> |
| 5535 | M: Sangbeom Kim <sbkim73@samsung.com> | ||
| 5535 | L: alsa-devel@alsa-project.org (moderated for non-subscribers) | 5536 | L: alsa-devel@alsa-project.org (moderated for non-subscribers) |
| 5536 | S: Supported | 5537 | S: Supported |
| 5537 | F: sound/soc/samsung | 5538 | F: sound/soc/samsung |
diff --git a/sound/soc/blackfin/bf5xx-ad193x.c b/sound/soc/blackfin/bf5xx-ad193x.c index d6651c033cb7..a118a0fb9d81 100644 --- a/sound/soc/blackfin/bf5xx-ad193x.c +++ b/sound/soc/blackfin/bf5xx-ad193x.c | |||
| @@ -56,7 +56,7 @@ static int bf5xx_ad193x_hw_params(struct snd_pcm_substream *substream, | |||
| 56 | 56 | ||
| 57 | switch (params_rate(params)) { | 57 | switch (params_rate(params)) { |
| 58 | case 48000: | 58 | case 48000: |
| 59 | clk = 12288000; | 59 | clk = 24576000; |
| 60 | break; | 60 | break; |
| 61 | } | 61 | } |
| 62 | 62 | ||
diff --git a/sound/soc/codecs/ad193x.c b/sound/soc/codecs/ad193x.c index 2374ca5ffe68..eedb6f5e5823 100644 --- a/sound/soc/codecs/ad193x.c +++ b/sound/soc/codecs/ad193x.c | |||
| @@ -27,11 +27,6 @@ struct ad193x_priv { | |||
| 27 | int sysclk; | 27 | int sysclk; |
| 28 | }; | 28 | }; |
| 29 | 29 | ||
| 30 | /* ad193x register cache & default register settings */ | ||
| 31 | static const u8 ad193x_reg[AD193X_NUM_REGS] = { | ||
| 32 | 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0, 0, 0, | ||
| 33 | }; | ||
| 34 | |||
| 35 | /* | 30 | /* |
| 36 | * AD193X volume/mute/de-emphasis etc. controls | 31 | * AD193X volume/mute/de-emphasis etc. controls |
| 37 | */ | 32 | */ |
| @@ -307,7 +302,8 @@ static int ad193x_hw_params(struct snd_pcm_substream *substream, | |||
| 307 | snd_soc_write(codec, AD193X_PLL_CLK_CTRL0, reg); | 302 | snd_soc_write(codec, AD193X_PLL_CLK_CTRL0, reg); |
| 308 | 303 | ||
| 309 | reg = snd_soc_read(codec, AD193X_DAC_CTRL2); | 304 | reg = snd_soc_read(codec, AD193X_DAC_CTRL2); |
| 310 | reg = (reg & (~AD193X_DAC_WORD_LEN_MASK)) | word_len; | 305 | reg = (reg & (~AD193X_DAC_WORD_LEN_MASK)) |
| 306 | | (word_len << AD193X_DAC_WORD_LEN_SHFT); | ||
| 311 | snd_soc_write(codec, AD193X_DAC_CTRL2, reg); | 307 | snd_soc_write(codec, AD193X_DAC_CTRL2, reg); |
| 312 | 308 | ||
| 313 | reg = snd_soc_read(codec, AD193X_ADC_CTRL1); | 309 | reg = snd_soc_read(codec, AD193X_ADC_CTRL1); |
| @@ -389,9 +385,6 @@ static int ad193x_probe(struct snd_soc_codec *codec) | |||
| 389 | 385 | ||
| 390 | static struct snd_soc_codec_driver soc_codec_dev_ad193x = { | 386 | static struct snd_soc_codec_driver soc_codec_dev_ad193x = { |
| 391 | .probe = ad193x_probe, | 387 | .probe = ad193x_probe, |
| 392 | .reg_cache_default = ad193x_reg, | ||
| 393 | .reg_cache_size = AD193X_NUM_REGS, | ||
| 394 | .reg_word_size = sizeof(u16), | ||
| 395 | }; | 388 | }; |
| 396 | 389 | ||
| 397 | #if defined(CONFIG_SPI_MASTER) | 390 | #if defined(CONFIG_SPI_MASTER) |
diff --git a/sound/soc/codecs/ad193x.h b/sound/soc/codecs/ad193x.h index 9747b5497877..cccc2e8e5fbd 100644 --- a/sound/soc/codecs/ad193x.h +++ b/sound/soc/codecs/ad193x.h | |||
| @@ -34,7 +34,8 @@ | |||
| 34 | #define AD193X_DAC_LEFT_HIGH (1 << 3) | 34 | #define AD193X_DAC_LEFT_HIGH (1 << 3) |
| 35 | #define AD193X_DAC_BCLK_INV (1 << 7) | 35 | #define AD193X_DAC_BCLK_INV (1 << 7) |
| 36 | #define AD193X_DAC_CTRL2 0x804 | 36 | #define AD193X_DAC_CTRL2 0x804 |
| 37 | #define AD193X_DAC_WORD_LEN_MASK 0xC | 37 | #define AD193X_DAC_WORD_LEN_SHFT 3 |
| 38 | #define AD193X_DAC_WORD_LEN_MASK 0x18 | ||
| 38 | #define AD193X_DAC_MASTER_MUTE 1 | 39 | #define AD193X_DAC_MASTER_MUTE 1 |
| 39 | #define AD193X_DAC_CHNL_MUTE 0x805 | 40 | #define AD193X_DAC_CHNL_MUTE 0x805 |
| 40 | #define AD193X_DACL1_MUTE 0 | 41 | #define AD193X_DACL1_MUTE 0 |
| @@ -63,7 +64,7 @@ | |||
| 63 | #define AD193X_ADC_CTRL1 0x80f | 64 | #define AD193X_ADC_CTRL1 0x80f |
| 64 | #define AD193X_ADC_SERFMT_MASK 0x60 | 65 | #define AD193X_ADC_SERFMT_MASK 0x60 |
| 65 | #define AD193X_ADC_SERFMT_STEREO (0 << 5) | 66 | #define AD193X_ADC_SERFMT_STEREO (0 << 5) |
| 66 | #define AD193X_ADC_SERFMT_TDM (1 << 2) | 67 | #define AD193X_ADC_SERFMT_TDM (1 << 5) |
| 67 | #define AD193X_ADC_SERFMT_AUX (2 << 5) | 68 | #define AD193X_ADC_SERFMT_AUX (2 << 5) |
| 68 | #define AD193X_ADC_WORD_LEN_MASK 0x3 | 69 | #define AD193X_ADC_WORD_LEN_MASK 0x3 |
| 69 | #define AD193X_ADC_CTRL2 0x810 | 70 | #define AD193X_ADC_CTRL2 0x810 |
diff --git a/sound/soc/codecs/sta32x.c b/sound/soc/codecs/sta32x.c index 409d89d1f34c..fbd7eb9e61ce 100644 --- a/sound/soc/codecs/sta32x.c +++ b/sound/soc/codecs/sta32x.c | |||
| @@ -857,6 +857,7 @@ static __devinit int sta32x_i2c_probe(struct i2c_client *i2c, | |||
| 857 | ret = snd_soc_register_codec(&i2c->dev, &sta32x_codec, &sta32x_dai, 1); | 857 | ret = snd_soc_register_codec(&i2c->dev, &sta32x_codec, &sta32x_dai, 1); |
| 858 | if (ret != 0) { | 858 | if (ret != 0) { |
| 859 | dev_err(&i2c->dev, "Failed to register codec (%d)\n", ret); | 859 | dev_err(&i2c->dev, "Failed to register codec (%d)\n", ret); |
| 860 | kfree(sta32x); | ||
| 860 | return ret; | 861 | return ret; |
| 861 | } | 862 | } |
| 862 | 863 | ||
diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c index 60d740ebeb5b..1725550c293e 100644 --- a/sound/soc/codecs/wm8962.c +++ b/sound/soc/codecs/wm8962.c | |||
| @@ -2221,6 +2221,8 @@ static int sysclk_event(struct snd_soc_dapm_widget *w, | |||
| 2221 | switch (event) { | 2221 | switch (event) { |
| 2222 | case SND_SOC_DAPM_PRE_PMU: | 2222 | case SND_SOC_DAPM_PRE_PMU: |
| 2223 | if (fll) { | 2223 | if (fll) { |
| 2224 | try_wait_for_completion(&wm8962->fll_lock); | ||
| 2225 | |||
| 2224 | snd_soc_update_bits(codec, WM8962_FLL_CONTROL_1, | 2226 | snd_soc_update_bits(codec, WM8962_FLL_CONTROL_1, |
| 2225 | WM8962_FLL_ENA, WM8962_FLL_ENA); | 2227 | WM8962_FLL_ENA, WM8962_FLL_ENA); |
| 2226 | if (wm8962->irq) { | 2228 | if (wm8962->irq) { |
| @@ -2927,10 +2929,6 @@ static int wm8962_set_bias_level(struct snd_soc_codec *codec, | |||
| 2927 | WM8962_BIAS_ENA | 0x180); | 2929 | WM8962_BIAS_ENA | 0x180); |
| 2928 | 2930 | ||
| 2929 | msleep(5); | 2931 | msleep(5); |
| 2930 | |||
| 2931 | snd_soc_update_bits(codec, WM8962_CLOCKING2, | ||
| 2932 | WM8962_CLKREG_OVD, | ||
| 2933 | WM8962_CLKREG_OVD); | ||
| 2934 | } | 2932 | } |
| 2935 | 2933 | ||
| 2936 | /* VMID 2*250k */ | 2934 | /* VMID 2*250k */ |
| @@ -3288,6 +3286,8 @@ static int wm8962_set_fll(struct snd_soc_codec *codec, int fll_id, int source, | |||
| 3288 | snd_soc_write(codec, WM8962_FLL_CONTROL_7, fll_div.lambda); | 3286 | snd_soc_write(codec, WM8962_FLL_CONTROL_7, fll_div.lambda); |
| 3289 | snd_soc_write(codec, WM8962_FLL_CONTROL_8, fll_div.n); | 3287 | snd_soc_write(codec, WM8962_FLL_CONTROL_8, fll_div.n); |
| 3290 | 3288 | ||
| 3289 | try_wait_for_completion(&wm8962->fll_lock); | ||
| 3290 | |||
| 3291 | snd_soc_update_bits(codec, WM8962_FLL_CONTROL_1, | 3291 | snd_soc_update_bits(codec, WM8962_FLL_CONTROL_1, |
| 3292 | WM8962_FLL_FRAC | WM8962_FLL_REFCLK_SRC_MASK | | 3292 | WM8962_FLL_FRAC | WM8962_FLL_REFCLK_SRC_MASK | |
| 3293 | WM8962_FLL_ENA, fll1); | 3293 | WM8962_FLL_ENA, fll1); |
| @@ -3868,6 +3868,10 @@ static int wm8962_probe(struct snd_soc_codec *codec) | |||
| 3868 | */ | 3868 | */ |
| 3869 | snd_soc_update_bits(codec, WM8962_CLOCKING2, WM8962_SYSCLK_ENA, 0); | 3869 | snd_soc_update_bits(codec, WM8962_CLOCKING2, WM8962_SYSCLK_ENA, 0); |
| 3870 | 3870 | ||
| 3871 | /* Ensure we have soft control over all registers */ | ||
| 3872 | snd_soc_update_bits(codec, WM8962_CLOCKING2, | ||
| 3873 | WM8962_CLKREG_OVD, WM8962_CLKREG_OVD); | ||
| 3874 | |||
| 3871 | regulator_bulk_disable(ARRAY_SIZE(wm8962->supplies), wm8962->supplies); | 3875 | regulator_bulk_disable(ARRAY_SIZE(wm8962->supplies), wm8962->supplies); |
| 3872 | 3876 | ||
| 3873 | if (pdata) { | 3877 | if (pdata) { |
diff --git a/sound/soc/codecs/wm8996.c b/sound/soc/codecs/wm8996.c index ab8e9d1aaff0..0cdb9d105671 100644 --- a/sound/soc/codecs/wm8996.c +++ b/sound/soc/codecs/wm8996.c | |||
| @@ -420,7 +420,7 @@ static const char *sidetone_hpf_text[] = { | |||
| 420 | }; | 420 | }; |
| 421 | 421 | ||
| 422 | static const struct soc_enum sidetone_hpf = | 422 | static const struct soc_enum sidetone_hpf = |
| 423 | SOC_ENUM_SINGLE(WM8996_SIDETONE, 7, 6, sidetone_hpf_text); | ||
