| Index: sound/soc/codecs/wm8960.c
|
| diff --git a/sound/soc/codecs/wm8960.c b/sound/soc/codecs/wm8960.c
|
| index ff6ff2f529d2a97f9e2522ceff5df18355cecd5c..4393394b7bc14bc1eaf5c724ddce602779fc8c9c 100644
|
| --- a/sound/soc/codecs/wm8960.c
|
| +++ b/sound/soc/codecs/wm8960.c
|
| @@ -20,7 +20,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>
|
| #include <sound/wm8960.h>
|
| @@ -72,7 +71,6 @@ static const u16 wm8960_reg[WM8960_CACHEREGNUM] = {
|
| };
|
|
|
| struct wm8960_priv {
|
| - u16 reg_cache[WM8960_CACHEREGNUM];
|
| enum snd_soc_control_type control_type;
|
| void *control_data;
|
| int (*set_bias_level)(struct snd_soc_codec *,
|
| @@ -389,27 +387,28 @@ static int wm8960_add_widgets(struct snd_soc_codec *codec)
|
| {
|
| struct wm8960_data *pdata = codec->dev->platform_data;
|
| struct wm8960_priv *wm8960 = snd_soc_codec_get_drvdata(codec);
|
| + struct snd_soc_dapm_context *dapm = &codec->dapm;
|
| struct snd_soc_dapm_widget *w;
|
|
|
| - snd_soc_dapm_new_controls(codec, wm8960_dapm_widgets,
|
| + snd_soc_dapm_new_controls(dapm, wm8960_dapm_widgets,
|
| ARRAY_SIZE(wm8960_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));
|
|
|
| /* In capless mode OUT3 is used to provide VMID for the
|
| * headphone outputs, otherwise it is used as a mono mixer.
|
| */
|
| if (pdata && pdata->capless) {
|
| - snd_soc_dapm_new_controls(codec, wm8960_dapm_widgets_capless,
|
| + snd_soc_dapm_new_controls(dapm, wm8960_dapm_widgets_capless,
|
| ARRAY_SIZE(wm8960_dapm_widgets_capless));
|
|
|
| - snd_soc_dapm_add_routes(codec, audio_paths_capless,
|
| + snd_soc_dapm_add_routes(dapm, audio_paths_capless,
|
| ARRAY_SIZE(audio_paths_capless));
|
| } else {
|
| - snd_soc_dapm_new_controls(codec, wm8960_dapm_widgets_out3,
|
| + snd_soc_dapm_new_controls(dapm, wm8960_dapm_widgets_out3,
|
| ARRAY_SIZE(wm8960_dapm_widgets_out3));
|
|
|
| - snd_soc_dapm_add_routes(codec, audio_paths_out3,
|
| + snd_soc_dapm_add_routes(dapm, audio_paths_out3,
|
| ARRAY_SIZE(audio_paths_out3));
|
| }
|
|
|
| @@ -418,7 +417,9 @@ static int wm8960_add_widgets(struct snd_soc_codec *codec)
|
| * list each time to find the desired power state do so now
|
| * and save the result.
|
| */
|
| - list_for_each_entry(w, &codec->dapm_widgets, list) {
|
| + list_for_each_entry(w, &codec->card->widgets, list) {
|
| + if (w->dapm != &codec->dapm)
|
| + continue;
|
| if (strcmp(w->name, "LOUT1 PGA") == 0)
|
| wm8960->lout1 = w;
|
| if (strcmp(w->name, "ROUT1 PGA") == 0)
|
| @@ -573,7 +574,7 @@ static int wm8960_set_bias_level_out3(struct snd_soc_codec *codec,
|
| break;
|
|
|
| case SND_SOC_BIAS_STANDBY:
|
| - if (codec->bias_level == SND_SOC_BIAS_OFF) {
|
| + if (codec->dapm.bias_level == SND_SOC_BIAS_OFF) {
|
| /* Enable anti-pop features */
|
| snd_soc_write(codec, WM8960_APOP1,
|
| WM8960_POBCTRL | WM8960_SOFT_ST |
|
| @@ -611,7 +612,7 @@ static int wm8960_set_bias_level_out3(struct snd_soc_codec *codec,
|
| break;
|
| }
|
|
|
| - codec->bias_level = level;
|
| + codec->dapm.bias_level = level;
|
|
|
| return 0;
|
| }
|
| @@ -627,7 +628,7 @@ static int wm8960_set_bias_level_capless(struct snd_soc_codec *codec,
|
| break;
|
|
|
| case SND_SOC_BIAS_PREPARE:
|
| - switch (codec->bias_level) {
|
| + switch (codec->dapm.bias_level) {
|
| case SND_SOC_BIAS_STANDBY:
|
| /* Enable anti pop mode */
|
| snd_soc_update_bits(codec, WM8960_APOP1,
|
| @@ -682,7 +683,7 @@ static int wm8960_set_bias_level_capless(struct snd_soc_codec *codec,
|
| break;
|
|
|
| case SND_SOC_BIAS_STANDBY:
|
| - switch (codec->bias_level) {
|
| + switch (codec->dapm.bias_level) {
|
| case SND_SOC_BIAS_PREPARE:
|
| /* Disable HP discharge */
|
| snd_soc_update_bits(codec, WM8960_APOP2,
|
| @@ -706,7 +707,7 @@ static int wm8960_set_bias_level_capless(struct snd_soc_codec *codec,
|
| break;
|
| }
|
|
|
| - codec->bias_level = level;
|
| + codec->dapm.bias_level = level;
|
|
|
| return 0;
|
| }
|
|
|