aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/wm8731.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/codecs/wm8731.c')
-rw-r--r--sound/soc/codecs/wm8731.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/sound/soc/codecs/wm8731.c b/sound/soc/codecs/wm8731.c
index 0cf9265fca8f..0f28aa4bcccb 100644
--- a/sound/soc/codecs/wm8731.c
+++ b/sound/soc/codecs/wm8731.c
@@ -435,29 +435,29 @@ static int wm8731_set_dai_fmt(struct snd_soc_codec_dai *codec_dai,
435 return 0; 435 return 0;
436} 436}
437 437
438static int wm8731_dapm_event(struct snd_soc_codec *codec, int event) 438static int wm8731_set_bias_level(struct snd_soc_codec *codec,
439 enum snd_soc_bias_level level)
439{ 440{
440 u16 reg = wm8731_read_reg_cache(codec, WM8731_PWR) & 0xff7f; 441 u16 reg = wm8731_read_reg_cache(codec, WM8731_PWR) & 0xff7f;
441 442
442 switch (event) { 443 switch (level) {
443 case SNDRV_CTL_POWER_D0: /* full On */ 444 case SND_SOC_BIAS_ON:
444 /* vref/mid, osc on, dac unmute */ 445 /* vref/mid, osc on, dac unmute */
445 wm8731_write(codec, WM8731_PWR, reg); 446 wm8731_write(codec, WM8731_PWR, reg);
446 break; 447 break;
447 case SNDRV_CTL_POWER_D1: /* partial On */ 448 case SND_SOC_BIAS_PREPARE:
448 case SNDRV_CTL_POWER_D2: /* partial On */
449 break; 449 break;
450 case SNDRV_CTL_POWER_D3hot: /* Off, with power */ 450 case SND_SOC_BIAS_STANDBY:
451 /* everything off except vref/vmid, */ 451 /* everything off except vref/vmid, */
452 wm8731_write(codec, WM8731_PWR, reg | 0x0040); 452 wm8731_write(codec, WM8731_PWR, reg | 0x0040);
453 break; 453 break;
454 case SNDRV_CTL_POWER_D3cold: /* Off, without power */ 454 case SND_SOC_BIAS_OFF:
455 /* everything off, dac mute, inactive */ 455 /* everything off, dac mute, inactive */
456 wm8731_write(codec, WM8731_ACTIVE, 0x0); 456 wm8731_write(codec, WM8731_ACTIVE, 0x0);
457 wm8731_write(codec, WM8731_PWR, 0xffff); 457 wm8731_write(codec, WM8731_PWR, 0xffff);
458 break; 458 break;
459 } 459 }
460 codec->dapm_state = event; 460 codec->bias_level = level;
461 return 0; 461 return 0;
462} 462}
463 463
@@ -503,7 +503,7 @@ static int wm8731_suspend(struct platform_device *pdev, pm_message_t state)
503 struct snd_soc_codec *codec = socdev->codec; 503 struct snd_soc_codec *codec = socdev->codec;
504 504
505 wm8731_write(codec, WM8731_ACTIVE, 0x0); 505 wm8731_write(codec, WM8731_ACTIVE, 0x0);
506 wm8731_dapm_event(codec, SNDRV_CTL_POWER_D3cold); 506 wm8731_set_bias_level(codec, SND_SOC_BIAS_OFF);
507 return 0; 507 return 0;
508} 508}
509 509
@@ -521,8 +521,8 @@ static int wm8731_resume(struct platform_device *pdev)
521 data[1] = cache[i] & 0x00ff; 521 data[1] = cache[i] & 0x00ff;
522 codec->hw_write(codec->control_data, data, 2); 522 codec->hw_write(codec->control_data, data, 2);
523 } 523 }
524 wm8731_dapm_event(codec, SNDRV_CTL_POWER_D3hot); 524 wm8731_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
525 wm8731_dapm_event(codec, codec->suspend_dapm_state); 525 wm8731_set_bias_level(codec, codec->suspend_bias_level);
526 return 0; 526 return 0;
527} 527}
528 528
@@ -539,7 +539,7 @@ static int wm8731_init(struct snd_soc_device *socdev)
539 codec->owner = THIS_MODULE; 539 codec->owner = THIS_MODULE;
540 codec->read = wm8731_read_reg_cache; 540 codec->read = wm8731_read_reg_cache;
541 codec->write = wm8731_write; 541 codec->write = wm8731_write;
542 codec->dapm_event = wm8731_dapm_event; 542 codec->set_bias_level = wm8731_set_bias_level;
543 codec->dai = &wm8731_dai; 543 codec->dai = &wm8731_dai;
544 codec->num_dai = 1; 544 codec->num_dai = 1;
545 codec->reg_cache_size = sizeof(wm8731_reg); 545 codec->reg_cache_size = sizeof(wm8731_reg);
@@ -557,7 +557,7 @@ static int wm8731_init(struct snd_soc_device *socdev)
557 } 557 }
558 558
559 /* power on device */ 559 /* power on device */
560 wm8731_dapm_event(codec, SNDRV_CTL_POWER_D3hot); 560 wm8731_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
561 561
562 /* set the update bits */ 562 /* set the update bits */
563 reg = wm8731_read_reg_cache(codec, WM8731_LOUT1V); 563 reg = wm8731_read_reg_cache(codec, WM8731_LOUT1V);
@@ -730,7 +730,7 @@ static int wm8731_remove(struct platform_device *pdev)
730 struct snd_soc_codec *codec = socdev->codec; 730 struct snd_soc_codec *codec = socdev->codec;
731 731
732 if (codec->control_data) 732 if (codec->control_data)
733 wm8731_dapm_event(codec, SNDRV_CTL_POWER_D3cold); 733 wm8731_set_bias_level(codec, SND_SOC_BIAS_OFF);
734 734
735 snd_soc_free_pcms(socdev); 735 snd_soc_free_pcms(socdev);
736 snd_soc_dapm_free(socdev); 736 snd_soc_dapm_free(socdev);