aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2015-01-27 12:54:24 -0500
committerMark Brown <broonie@kernel.org>2015-01-27 12:54:24 -0500
commit8d23dd9c66456686d85805100204c0a4db584425 (patch)
tree6bbd2b6b7326ef2ab62f06e09b894ffe1cef4e2c
parenta7834aa932e245a13fb2da59471672ca9bf3a7a5 (diff)
parentbdfbf2550d85b0e645a0bb9b3abd3b0a5448eacf (diff)
Merge branch 'fix/rt5677' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-w-codec
-rw-r--r--sound/soc/codecs/rt5677.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/sound/soc/codecs/rt5677.c b/sound/soc/codecs/rt5677.c
index ff7cce941106..8f0bd86481d3 100644
--- a/sound/soc/codecs/rt5677.c
+++ b/sound/soc/codecs/rt5677.c
@@ -2178,10 +2178,14 @@ static int rt5677_set_pll1_event(struct snd_soc_dapm_widget *w,
2178 struct rt5677_priv *rt5677 = snd_soc_codec_get_drvdata(codec); 2178 struct rt5677_priv *rt5677 = snd_soc_codec_get_drvdata(codec);
2179 2179
2180 switch (event) { 2180 switch (event) {
2181 case SND_SOC_DAPM_POST_PMU: 2181 case SND_SOC_DAPM_PRE_PMU:
2182 regmap_update_bits(rt5677->regmap, RT5677_PLL1_CTRL2, 0x2, 0x2); 2182 regmap_update_bits(rt5677->regmap, RT5677_PLL1_CTRL2, 0x2, 0x2);
2183 break;
2184
2185 case SND_SOC_DAPM_POST_PMU:
2183 regmap_update_bits(rt5677->regmap, RT5677_PLL1_CTRL2, 0x2, 0x0); 2186 regmap_update_bits(rt5677->regmap, RT5677_PLL1_CTRL2, 0x2, 0x0);
2184 break; 2187 break;
2188
2185 default: 2189 default:
2186 return 0; 2190 return 0;
2187 } 2191 }
@@ -2196,10 +2200,14 @@ static int rt5677_set_pll2_event(struct snd_soc_dapm_widget *w,
2196 struct rt5677_priv *rt5677 = snd_soc_codec_get_drvdata(codec); 2200 struct rt5677_priv *rt5677 = snd_soc_codec_get_drvdata(codec);
2197 2201
2198 switch (event) { 2202 switch (event) {
2199 case SND_SOC_DAPM_POST_PMU: 2203 case SND_SOC_DAPM_PRE_PMU:
2200 regmap_update_bits(rt5677->regmap, RT5677_PLL2_CTRL2, 0x2, 0x2); 2204 regmap_update_bits(rt5677->regmap, RT5677_PLL2_CTRL2, 0x2, 0x2);
2205 break;
2206
2207 case SND_SOC_DAPM_POST_PMU:
2201 regmap_update_bits(rt5677->regmap, RT5677_PLL2_CTRL2, 0x2, 0x0); 2208 regmap_update_bits(rt5677->regmap, RT5677_PLL2_CTRL2, 0x2, 0x0);
2202 break; 2209 break;
2210
2203 default: 2211 default:
2204 return 0; 2212 return 0;
2205 } 2213 }
@@ -2307,9 +2315,11 @@ static int rt5677_vref_event(struct snd_soc_dapm_widget *w,
2307 2315
2308static const struct snd_soc_dapm_widget rt5677_dapm_widgets[] = { 2316static const struct snd_soc_dapm_widget rt5677_dapm_widgets[] = {
2309 SND_SOC_DAPM_SUPPLY("PLL1", RT5677_PWR_ANLG2, RT5677_PWR_PLL1_BIT, 2317 SND_SOC_DAPM_SUPPLY("PLL1", RT5677_PWR_ANLG2, RT5677_PWR_PLL1_BIT,
2310 0, rt5677_set_pll1_event, SND_SOC_DAPM_POST_PMU), 2318 0, rt5677_set_pll1_event, SND_SOC_DAPM_PRE_PMU |
2319 SND_SOC_DAPM_POST_PMU),
2311 SND_SOC_DAPM_SUPPLY("PLL2", RT5677_PWR_ANLG2, RT5677_PWR_PLL2_BIT, 2320 SND_SOC_DAPM_SUPPLY("PLL2", RT5677_PWR_ANLG2, RT5677_PWR_PLL2_BIT,
2312 0, rt5677_set_pll2_event, SND_SOC_DAPM_POST_PMU), 2321 0, rt5677_set_pll2_event, SND_SOC_DAPM_PRE_PMU |
2322 SND_SOC_DAPM_POST_PMU),
2313 2323
2314 /* ASRC */ 2324 /* ASRC */
2315 SND_SOC_DAPM_SUPPLY_S("I2S1 ASRC", 1, RT5677_ASRC_1, 0, 0, NULL, 0), 2325 SND_SOC_DAPM_SUPPLY_S("I2S1 ASRC", 1, RT5677_ASRC_1, 0, 0, NULL, 0),