Commit 887fcc6f authored by Hans de Goede's avatar Hans de Goede Committed by Mark Brown

ASoC: rt5651: Do not modify jd and PLL power bits from set_bias_level()

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: default avatarCarlo Caione <carlo@endlessm.com>
Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent bba4e685
...@@ -1521,8 +1521,6 @@ static int rt5651_set_dai_pll(struct snd_soc_dai *dai, int pll_id, int source, ...@@ -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, static int rt5651_set_bias_level(struct snd_soc_component *component,
enum snd_soc_bias_level level) enum snd_soc_bias_level level)
{ {
struct rt5651_priv *rt5651 = snd_soc_component_get_drvdata(component);
switch (level) { switch (level) {
case SND_SOC_BIAS_PREPARE: case SND_SOC_BIAS_PREPARE:
if (SND_SOC_BIAS_STANDBY == snd_soc_component_get_bias_level(component)) { 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, ...@@ -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 */ /* Do not touch the LDO voltage select bits on bias-off */
snd_soc_component_update_bits(component, RT5651_PWR_ANLG1, snd_soc_component_update_bits(component, RT5651_PWR_ANLG1,
~RT5651_PWR_LDO_DVO_MASK, 0); ~RT5651_PWR_LDO_DVO_MASK, 0);
if (rt5651->jd_src) { /* Leave PLL1 and jack-detect power as is, all others off */
snd_soc_component_write(component, RT5651_PWR_ANLG2, 0x0204); snd_soc_component_update_bits(component, RT5651_PWR_ANLG2,
} else { ~(RT5651_PWR_PLL | RT5651_PWR_JD_M), 0);
snd_soc_component_write(component, RT5651_PWR_ANLG2, 0x0000);
}
break; break;
default: default:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment