]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
ASoC: rt5651: Do not modify jd and PLL power bits from set_bias_level()
authorHans de Goede <hdegoede@redhat.com>
Sun, 25 Feb 2018 10:46:51 +0000 (11:46 +0100)
committerMark Brown <broonie@kernel.org>
Thu, 1 Mar 2018 19:13:04 +0000 (19:13 +0000)
rt5651_set_bias_level(BIAS_OFF) used to unconditionally clear the entire
register, including the jack-detect and PLL power bits. When jack-detection
support was introduced a special case for jack-detect was added which
hard-codes a register value to keep both on.

This commit removes the jack-detect special case, instead simply leaving
these bits as is on BIAS_OFF.

Tested-by: Carlo Caione <carlo@endlessm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/rt5651.c

index c93539ee2200107f4775c13d37612e3cd2afcde5..d4fb16686889404f82c5a12fc1303fd06802eb6c 100644 (file)
@@ -1521,8 +1521,6 @@ static int rt5651_set_dai_pll(struct snd_soc_dai *dai, int pll_id, int source,
 static int rt5651_set_bias_level(struct snd_soc_component *component,
                        enum snd_soc_bias_level level)
 {
-       struct rt5651_priv *rt5651 = snd_soc_component_get_drvdata(component);
-
        switch (level) {
        case SND_SOC_BIAS_PREPARE:
                if (SND_SOC_BIAS_STANDBY == snd_soc_component_get_bias_level(component)) {
@@ -1558,11 +1556,9 @@ static int rt5651_set_bias_level(struct snd_soc_component *component,
                /* Do not touch the LDO voltage select bits on bias-off */
                snd_soc_component_update_bits(component, RT5651_PWR_ANLG1,
                        ~RT5651_PWR_LDO_DVO_MASK, 0);
-               if (rt5651->jd_src) {
-                       snd_soc_component_write(component, RT5651_PWR_ANLG2, 0x0204);
-               } else {
-                       snd_soc_component_write(component, RT5651_PWR_ANLG2, 0x0000);
-               }
+               /* Leave PLL1 and jack-detect power as is, all others off */
+               snd_soc_component_update_bits(component, RT5651_PWR_ANLG2,
+                                   ~(RT5651_PWR_PLL | RT5651_PWR_JD_M), 0);
                break;
 
        default: