| Index: sound/soc/codecs/wm9081.c
|
| diff --git a/sound/soc/codecs/wm9081.c b/sound/soc/codecs/wm9081.c
|
| index a486670966bd7e6a44470ece6918fab24c638c2b..5c224dd917d7c8a2116d02bc04ba33632be6f9d5 100644
|
| --- a/sound/soc/codecs/wm9081.c
|
| +++ b/sound/soc/codecs/wm9081.c
|
| @@ -23,7 +23,6 @@
|
| #include <sound/pcm.h>
|
| #include <sound/pcm_params.h>
|
| #include <sound/soc.h>
|
| -#include <sound/soc-dapm.h>
|
| #include <sound/initval.h>
|
| #include <sound/tlv.h>
|
|
|
| @@ -158,7 +157,6 @@ static struct {
|
| struct wm9081_priv {
|
| enum snd_soc_control_type control_type;
|
| void *control_data;
|
| - u16 reg_cache[WM9081_MAX_REGISTER + 1];
|
| int sysclk_source;
|
| int mclk_rate;
|
| int sysclk_rate;
|
| @@ -171,7 +169,7 @@ struct wm9081_priv {
|
| struct wm9081_retune_mobile_config *retune;
|
| };
|
|
|
| -static int wm9081_volatile_register(unsigned int reg)
|
| +static int wm9081_volatile_register(struct snd_soc_codec *codec, unsigned int reg)
|
| {
|
| switch (reg) {
|
| case WM9081_SOFTWARE_RESET:
|
| @@ -591,6 +589,10 @@ static int wm9081_set_fll(struct snd_soc_codec *codec, int fll_id,
|
| reg5 |= fll_div.fll_clk_ref_div << WM9081_FLL_CLK_REF_DIV_SHIFT;
|
| snd_soc_write(codec, WM9081_FLL_CONTROL_5, reg5);
|
|
|
| + /* Set gain to the recommended value */
|
| + snd_soc_update_bits(codec, WM9081_FLL_CONTROL_4,
|
| + WM9081_FLL_GAIN_MASK, 0);
|
| +
|
| /* Enable the FLL */
|
| snd_soc_write(codec, WM9081_FLL_CONTROL_1, reg1 | WM9081_FLL_ENA);
|
|
|
| @@ -805,7 +807,7 @@ static int wm9081_set_bias_level(struct snd_soc_codec *codec,
|
|
|
| case SND_SOC_BIAS_STANDBY:
|
| /* Initial cold start */
|
| - if (codec->bias_level == SND_SOC_BIAS_OFF) {
|
| + if (codec->dapm.bias_level == SND_SOC_BIAS_OFF) {
|
| /* Disable LINEOUT discharge */
|
| reg = snd_soc_read(codec, WM9081_ANTI_POP_CONTROL);
|
| reg &= ~WM9081_LINEOUT_DISCH;
|
| @@ -865,7 +867,7 @@ static int wm9081_set_bias_level(struct snd_soc_codec *codec,
|
| break;
|
| }
|
|
|
| - codec->bias_level = level;
|
| + codec->dapm.bias_level = level;
|
|
|
| return 0;
|
| }
|
| @@ -1228,6 +1230,7 @@ static struct snd_soc_dai_driver wm9081_dai = {
|
| static int wm9081_probe(struct snd_soc_codec *codec)
|
| {
|
| struct wm9081_priv *wm9081 = snd_soc_codec_get_drvdata(codec);
|
| + struct snd_soc_dapm_context *dapm = &codec->dapm;
|
| int ret;
|
| u16 reg;
|
|
|
| @@ -1269,9 +1272,9 @@ static int wm9081_probe(struct snd_soc_codec *codec)
|
| ARRAY_SIZE(wm9081_eq_controls));
|
| }
|
|
|
| - snd_soc_dapm_new_controls(codec, wm9081_dapm_widgets,
|
| + snd_soc_dapm_new_controls(dapm, wm9081_dapm_widgets,
|
| ARRAY_SIZE(wm9081_dapm_widgets));
|
| - snd_soc_dapm_add_routes(codec, audio_paths, ARRAY_SIZE(audio_paths));
|
| + snd_soc_dapm_add_routes(dapm, audio_paths, ARRAY_SIZE(audio_paths));
|
|
|
| return ret;
|
| }
|
|
|