summaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/twl6040.c
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2016-05-27 13:45:30 +0100
committerMark Brown <broonie@kernel.org>2016-05-27 13:45:30 +0100
commitae14dbfaa04180cc07b32ad6c3852d73917878d3 (patch)
tree2248e50eeb6a76fb6604f3fec86f0bdc667eb860 /sound/soc/codecs/twl6040.c
parent94eaec458c037a8ec3a7cd39118d0d4378cabf11 (diff)
parent1135ef1139b3ebd5dc762b6b02384f8a7a84f8d4 (diff)
downloadlinux-ae14dbfaa04180cc07b32ad6c3852d73917878d3.tar.bz2
Merge remote-tracking branch 'asoc/topic/twl6040' into asoc-next
Diffstat (limited to 'sound/soc/codecs/twl6040.c')
-rw-r--r--sound/soc/codecs/twl6040.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/sound/soc/codecs/twl6040.c b/sound/soc/codecs/twl6040.c
index d1e3a932cbf3..1f7081043566 100644
--- a/sound/soc/codecs/twl6040.c
+++ b/sound/soc/codecs/twl6040.c
@@ -824,7 +824,7 @@ static int twl6040_set_bias_level(struct snd_soc_codec *codec,
{
struct twl6040 *twl6040 = codec->control_data;
struct twl6040_data *priv = snd_soc_codec_get_drvdata(codec);
- int ret;
+ int ret = 0;
switch (level) {
case SND_SOC_BIAS_ON:
@@ -832,12 +832,16 @@ static int twl6040_set_bias_level(struct snd_soc_codec *codec,
case SND_SOC_BIAS_PREPARE:
break;
case SND_SOC_BIAS_STANDBY:
- if (priv->codec_powered)
+ if (priv->codec_powered) {
+ /* Select low power PLL in standby */
+ ret = twl6040_set_pll(twl6040, TWL6040_SYSCLK_SEL_LPPLL,
+ 32768, 19200000);
break;
+ }
ret = twl6040_power(twl6040, 1);
if (ret)
- return ret;
+ break;
priv->codec_powered = 1;
@@ -853,7 +857,7 @@ static int twl6040_set_bias_level(struct snd_soc_codec *codec,
break;
}
- return 0;
+ return ret;
}
static int twl6040_startup(struct snd_pcm_substream *substream,