diff options
Diffstat (limited to 'sound/soc/codecs/wm8753.c')
-rw-r--r-- | sound/soc/codecs/wm8753.c | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/sound/soc/codecs/wm8753.c b/sound/soc/codecs/wm8753.c index 700f596a8be6..79b02ae125c5 100644 --- a/sound/soc/codecs/wm8753.c +++ b/sound/soc/codecs/wm8753.c | |||
@@ -45,7 +45,6 @@ | |||
45 | #include <sound/pcm.h> | 45 | #include <sound/pcm.h> |
46 | #include <sound/pcm_params.h> | 46 | #include <sound/pcm_params.h> |
47 | #include <sound/soc.h> | 47 | #include <sound/soc.h> |
48 | #include <sound/soc-dapm.h> | ||
49 | #include <sound/initval.h> | 48 | #include <sound/initval.h> |
50 | #include <sound/tlv.h> | 49 | #include <sound/tlv.h> |
51 | #include <asm/div64.h> | 50 | #include <asm/div64.h> |
@@ -623,10 +622,11 @@ static const struct snd_soc_dapm_route audio_map[] = { | |||
623 | 622 | ||
624 | static int wm8753_add_widgets(struct snd_soc_codec *codec) | 623 | static int wm8753_add_widgets(struct snd_soc_codec *codec) |
625 | { | 624 | { |
626 | snd_soc_dapm_new_controls(codec, wm8753_dapm_widgets, | 625 | struct snd_soc_dapm_context *dapm = &codec->dapm; |
627 | ARRAY_SIZE(wm8753_dapm_widgets)); | ||
628 | 626 | ||
629 | snd_soc_dapm_add_routes(codec, audio_map, ARRAY_SIZE(audio_map)); | 627 | snd_soc_dapm_new_controls(dapm, wm8753_dapm_widgets, |
628 | ARRAY_SIZE(wm8753_dapm_widgets)); | ||
629 | snd_soc_dapm_add_routes(dapm, audio_map, ARRAY_SIZE(audio_map)); | ||
630 | 630 | ||
631 | return 0; | 631 | return 0; |
632 | } | 632 | } |
@@ -1245,7 +1245,7 @@ static int wm8753_set_bias_level(struct snd_soc_codec *codec, | |||
1245 | snd_soc_write(codec, WM8753_PWR1, 0x0001); | 1245 | snd_soc_write(codec, WM8753_PWR1, 0x0001); |
1246 | break; | 1246 | break; |
1247 | } | 1247 | } |
1248 | codec->bias_level = level; | 1248 | codec->dapm.bias_level = level; |
1249 | return 0; | 1249 | return 0; |
1250 | } | 1250 | } |
1251 | 1251 | ||
@@ -1435,9 +1435,11 @@ static void wm8753_set_dai_mode(struct snd_soc_codec *codec, | |||
1435 | 1435 | ||
1436 | static void wm8753_work(struct work_struct *work) | 1436 | static void wm8753_work(struct work_struct *work) |
1437 | { | 1437 | { |
1438 | struct snd_soc_codec *codec = | 1438 | struct snd_soc_dapm_context *dapm = |
1439 | container_of(work, struct snd_soc_codec, delayed_work.work); | 1439 | container_of(work, struct snd_soc_dapm_context, |
1440 | wm8753_set_bias_level(codec, codec->bias_level); | 1440 | delayed_work.work); |
1441 | struct snd_soc_codec *codec = dapm->codec; | ||
1442 | wm8753_set_bias_level(codec, dapm->bias_level); | ||
1441 | } | 1443 | } |
1442 | 1444 | ||
1443 | static int wm8753_suspend(struct snd_soc_codec *codec, pm_message_t state) | 1445 | static int wm8753_suspend(struct snd_soc_codec *codec, pm_message_t state) |
@@ -1466,10 +1468,10 @@ static int wm8753_resume(struct snd_soc_codec *codec) | |||
1466 | wm8753_set_bias_level(codec, SND_SOC_BIAS_STANDBY); | 1468 | wm8753_set_bias_level(codec, SND_SOC_BIAS_STANDBY); |
1467 | 1469 | ||
1468 | /* charge wm8753 caps */ | 1470 | /* charge wm8753 caps */ |
1469 | if (codec->suspend_bias_level == SND_SOC_BIAS_ON) { | 1471 | if (codec->dapm.suspend_bias_level == SND_SOC_BIAS_ON) { |
1470 | wm8753_set_bias_level(codec, SND_SOC_BIAS_PREPARE); | 1472 | wm8753_set_bias_level(codec, SND_SOC_BIAS_PREPARE); |
1471 | codec->bias_level = SND_SOC_BIAS_ON; | 1473 | codec->dapm.bias_level = SND_SOC_BIAS_ON; |
1472 | schedule_delayed_work(&codec->delayed_work, | 1474 | schedule_delayed_work(&codec->dapm.delayed_work, |
1473 | msecs_to_jiffies(caps_charge)); | 1475 | msecs_to_jiffies(caps_charge)); |
1474 | } | 1476 | } |
1475 | 1477 | ||
@@ -1481,7 +1483,7 @@ static int wm8753_probe(struct snd_soc_codec *codec) | |||
1481 | struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); | 1483 | struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); |
1482 | int ret; | 1484 | int ret; |
1483 | 1485 | ||
1484 | INIT_DELAYED_WORK(&codec->delayed_work, wm8753_work); | 1486 | INIT_DELAYED_WORK(&codec->dapm.delayed_work, wm8753_work); |
1485 | 1487 | ||
1486 | ret = snd_soc_codec_set_cache_io(codec, 7, 9, wm8753->control_type); | 1488 | ret = snd_soc_codec_set_cache_io(codec, 7, 9, wm8753->control_type); |
1487 | if (ret < 0) { | 1489 | if (ret < 0) { |
@@ -1500,7 +1502,7 @@ static int wm8753_probe(struct snd_soc_codec *codec) | |||
1500 | 1502 | ||
1501 | /* charge output caps */ | 1503 | /* charge output caps */ |
1502 | wm8753_set_bias_level(codec, SND_SOC_BIAS_PREPARE); | 1504 | wm8753_set_bias_level(codec, SND_SOC_BIAS_PREPARE); |
1503 | schedule_delayed_work(&codec->delayed_work, | 1505 | schedule_delayed_work(&codec->dapm.delayed_work, |
1504 | msecs_to_jiffies(caps_charge)); | 1506 | msecs_to_jiffies(caps_charge)); |
1505 | 1507 | ||
1506 | /* set the update bits */ | 1508 | /* set the update bits */ |
@@ -1525,7 +1527,7 @@ static int wm8753_probe(struct snd_soc_codec *codec) | |||
1525 | /* power down chip */ | 1527 | /* power down chip */ |
1526 | static int wm8753_remove(struct snd_soc_codec *codec) | 1528 | static int wm8753_remove(struct snd_soc_codec *codec) |
1527 | { | 1529 | { |
1528 | flush_delayed_work_sync(&codec->delayed_work); | 1530 | flush_delayed_work_sync(&codec->dapm.delayed_work); |
1529 | wm8753_set_bias_level(codec, SND_SOC_BIAS_OFF); | 1531 | wm8753_set_bias_level(codec, SND_SOC_BIAS_OFF); |
1530 | 1532 | ||
1531 | return 0; | 1533 | return 0; |