diff options
Diffstat (limited to 'sound/soc/codecs/rt5677.c')
-rw-r--r-- | sound/soc/codecs/rt5677.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/sound/soc/codecs/rt5677.c b/sound/soc/codecs/rt5677.c index c0fbe1881439..918ada9738b0 100644 --- a/sound/soc/codecs/rt5677.c +++ b/sound/soc/codecs/rt5677.c | |||
@@ -2083,10 +2083,14 @@ static int rt5677_set_pll1_event(struct snd_soc_dapm_widget *w, | |||
2083 | struct rt5677_priv *rt5677 = snd_soc_codec_get_drvdata(codec); | 2083 | struct rt5677_priv *rt5677 = snd_soc_codec_get_drvdata(codec); |
2084 | 2084 | ||
2085 | switch (event) { | 2085 | switch (event) { |
2086 | case SND_SOC_DAPM_POST_PMU: | 2086 | case SND_SOC_DAPM_PRE_PMU: |
2087 | regmap_update_bits(rt5677->regmap, RT5677_PLL1_CTRL2, 0x2, 0x2); | 2087 | regmap_update_bits(rt5677->regmap, RT5677_PLL1_CTRL2, 0x2, 0x2); |
2088 | break; | ||
2089 | |||
2090 | case SND_SOC_DAPM_POST_PMU: | ||
2088 | regmap_update_bits(rt5677->regmap, RT5677_PLL1_CTRL2, 0x2, 0x0); | 2091 | regmap_update_bits(rt5677->regmap, RT5677_PLL1_CTRL2, 0x2, 0x0); |
2089 | break; | 2092 | break; |
2093 | |||
2090 | default: | 2094 | default: |
2091 | return 0; | 2095 | return 0; |
2092 | } | 2096 | } |
@@ -2101,10 +2105,14 @@ static int rt5677_set_pll2_event(struct snd_soc_dapm_widget *w, | |||
2101 | struct rt5677_priv *rt5677 = snd_soc_codec_get_drvdata(codec); | 2105 | struct rt5677_priv *rt5677 = snd_soc_codec_get_drvdata(codec); |
2102 | 2106 | ||
2103 | switch (event) { | 2107 | switch (event) { |
2104 | case SND_SOC_DAPM_POST_PMU: | 2108 | case SND_SOC_DAPM_PRE_PMU: |
2105 | regmap_update_bits(rt5677->regmap, RT5677_PLL2_CTRL2, 0x2, 0x2); | 2109 | regmap_update_bits(rt5677->regmap, RT5677_PLL2_CTRL2, 0x2, 0x2); |
2110 | break; | ||
2111 | |||
2112 | case SND_SOC_DAPM_POST_PMU: | ||
2106 | regmap_update_bits(rt5677->regmap, RT5677_PLL2_CTRL2, 0x2, 0x0); | 2113 | regmap_update_bits(rt5677->regmap, RT5677_PLL2_CTRL2, 0x2, 0x0); |
2107 | break; | 2114 | break; |
2115 | |||
2108 | default: | 2116 | default: |
2109 | return 0; | 2117 | return 0; |
2110 | } | 2118 | } |
@@ -2212,9 +2220,11 @@ static int rt5677_vref_event(struct snd_soc_dapm_widget *w, | |||
2212 | 2220 | ||
2213 | static const struct snd_soc_dapm_widget rt5677_dapm_widgets[] = { | 2221 | static const struct snd_soc_dapm_widget rt5677_dapm_widgets[] = { |
2214 | SND_SOC_DAPM_SUPPLY("PLL1", RT5677_PWR_ANLG2, RT5677_PWR_PLL1_BIT, | 2222 | SND_SOC_DAPM_SUPPLY("PLL1", RT5677_PWR_ANLG2, RT5677_PWR_PLL1_BIT, |
2215 | 0, rt5677_set_pll1_event, SND_SOC_DAPM_POST_PMU), | 2223 | 0, rt5677_set_pll1_event, SND_SOC_DAPM_PRE_PMU | |
2224 | SND_SOC_DAPM_POST_PMU), | ||
2216 | SND_SOC_DAPM_SUPPLY("PLL2", RT5677_PWR_ANLG2, RT5677_PWR_PLL2_BIT, | 2225 | SND_SOC_DAPM_SUPPLY("PLL2", RT5677_PWR_ANLG2, RT5677_PWR_PLL2_BIT, |
2217 | 0, rt5677_set_pll2_event, SND_SOC_DAPM_POST_PMU), | 2226 | 0, rt5677_set_pll2_event, SND_SOC_DAPM_PRE_PMU | |
2227 | SND_SOC_DAPM_POST_PMU), | ||
2218 | 2228 | ||
2219 | /* Input Side */ | 2229 | /* Input Side */ |
2220 | /* micbias */ | 2230 | /* micbias */ |