aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc')
-rw-r--r--sound/soc/codecs/wm8993.c6
-rw-r--r--sound/soc/codecs/wm8994.c8
-rw-r--r--sound/soc/codecs/wm_hubs.c6
3 files changed, 14 insertions, 6 deletions
diff --git a/sound/soc/codecs/wm8993.c b/sound/soc/codecs/wm8993.c
index 474dc72b4d8d..db51007a6a43 100644
--- a/sound/soc/codecs/wm8993.c
+++ b/sound/soc/codecs/wm8993.c
@@ -1622,6 +1622,12 @@ static int wm8993_probe(struct snd_soc_codec *codec)
1622 wm_hubs_add_analogue_routes(codec, wm8993->pdata.lineout1_diff, 1622 wm_hubs_add_analogue_routes(codec, wm8993->pdata.lineout1_diff,
1623 wm8993->pdata.lineout2_diff); 1623 wm8993->pdata.lineout2_diff);
1624 1624
1625 /* If the line outputs are differential then we aren't presenting
1626 * VMID as an output and can disable it.
1627 */
1628 if (wm8993->pdata.lineout1_diff && wm8993->pdata.lineout2_diff)
1629 codec->dapm.idle_bias_off = 1;
1630
1625 return 0; 1631 return 0;
1626 1632
1627} 1633}
diff --git a/sound/soc/codecs/wm8994.c b/sound/soc/codecs/wm8994.c
index 11ca19b72d7d..c26291844e5d 100644
--- a/sound/soc/codecs/wm8994.c
+++ b/sound/soc/codecs/wm8994.c
@@ -3396,10 +3396,18 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
3396 pm_runtime_enable(codec->dev); 3396 pm_runtime_enable(codec->dev);
3397 pm_runtime_resume(codec->dev); 3397 pm_runtime_resume(codec->dev);
3398 3398
3399 /* By default use idle_bias_off, will override for WM8994 */
3400 codec->dapm.idle_bias_off = 1;
3401
3399 /* Set revision-specific configuration */ 3402 /* Set revision-specific configuration */
3400 wm8994->revision = snd_soc_read(codec, WM8994_CHIP_REVISION); 3403 wm8994->revision = snd_soc_read(codec, WM8994_CHIP_REVISION);
3401 switch (control->type) { 3404 switch (control->type) {
3402 case WM8994: 3405 case WM8994:
3406 /* Single ended line outputs should have VMID on. */
3407 if (!wm8994->pdata->lineout1_diff ||
3408 !wm8994->pdata->lineout2_diff)
3409 codec->dapm.idle_bias_off = 0;
3410
3403 switch (wm8994->revision) { 3411 switch (wm8994->revision) {
3404 case 2: 3412 case 2:
3405 case 3: 3413 case 3:
diff --git a/sound/soc/codecs/wm_hubs.c b/sound/soc/codecs/wm_hubs.c
index 2a61094075f8..ec7d49033d4c 100644
--- a/sound/soc/codecs/wm_hubs.c
+++ b/sound/soc/codecs/wm_hubs.c
@@ -952,12 +952,6 @@ int wm_hubs_handle_analogue_pdata(struct snd_soc_codec *codec,
952 WM8993_LINEOUT2_MODE, 952 WM8993_LINEOUT2_MODE,
953 WM8993_LINEOUT2_MODE); 953 WM8993_LINEOUT2_MODE);
954 954
955 /* If the line outputs are differential then we aren't presenting
956 * VMID as an output and can disable it.
957 */
958 if (lineout1_diff && lineout2_diff)
959 codec->dapm.idle_bias_off = 1;
960
961 if (lineout1fb) 955 if (lineout1fb)
962 snd_soc_update_bits(codec, WM8993_ADDITIONAL_CONTROL, 956 snd_soc_update_bits(codec, WM8993_ADDITIONAL_CONTROL,
963 WM8993_LINEOUT1_FB, WM8993_LINEOUT1_FB); 957 WM8993_LINEOUT1_FB, WM8993_LINEOUT1_FB);