summaryrefslogtreecommitdiff
path: root/sound/soc
diff options
context:
space:
mode:
authorChristophe Branchereau <cbranchereau@gmail.com>2020-12-07 15:53:34 +0300
committerMark Brown <broonie@kernel.org>2020-12-09 15:13:41 +0300
commita346c77836183f6e3e054c5da022e0fde2773683 (patch)
tree22eac0ddc278a3841953b4a4d6767365158ca5b6 /sound/soc
parentad13c835442cdb2a964588fd03327f51dbcd4dfa (diff)
downloadlinux-a346c77836183f6e3e054c5da022e0fde2773683.tar.xz
ASoC: codecs/jz4770: Reset interrupt flags in bias PREPARE
In case a poll for RUP times out, we might be left with some IRQ flags that should be cleared before the next power on. Signed-off-by: Christophe Branchereau <cbranchereau@gmail.com> Signed-off-by: Paul Cercueil <paul@crapouillou.net> Link: https://lore.kernel.org/r/20201207125338.119397-2-paul@crapouillou.net Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc')
-rw-r--r--sound/soc/codecs/jz4770.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sound/soc/codecs/jz4770.c b/sound/soc/codecs/jz4770.c
index c6b2043f31a9..002f2300e750 100644
--- a/sound/soc/codecs/jz4770.c
+++ b/sound/soc/codecs/jz4770.c
@@ -190,6 +190,9 @@ static int jz4770_codec_set_bias_level(struct snd_soc_component *codec,
switch (level) {
case SND_SOC_BIAS_PREPARE:
+ /* Reset all interrupt flags. */
+ regmap_write(regmap, JZ4770_CODEC_REG_IFR, REG_IFR_ALL_MASK);
+
regmap_clear_bits(regmap, JZ4770_CODEC_REG_CR_VIC,
REG_CR_VIC_SB);
msleep(250);
@@ -642,9 +645,6 @@ static void jz4770_codec_codec_init_regs(struct snd_soc_component *codec)
/* Send collected updates. */
regcache_cache_only(regmap, false);
regcache_sync(regmap);
-
- /* Reset all interrupt flags. */
- regmap_write(regmap, JZ4770_CODEC_REG_IFR, REG_IFR_ALL_MASK);
}
static int jz4770_codec_codec_probe(struct snd_soc_component *codec)