diff options
author | Mark Brown <broonie@kernel.org> | 2021-06-25 15:08:01 +0200 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2021-06-25 15:08:01 +0200 |
commit | c073a58a7ec59145f8a0b87403d559645bfd9edb (patch) | |
tree | 769095ab7e460656d6d9169c113893efb7e557b6 /sound/soc/codecs/rt711-sdca.c | |
parent | Linux 5.13-rc7 (diff) | |
parent | ASoC: fsl_spdif: Fix unexpected interrupt after suspend (diff) | |
download | linux-c073a58a7ec59145f8a0b87403d559645bfd9edb.tar.xz linux-c073a58a7ec59145f8a0b87403d559645bfd9edb.zip |
Merge remote-tracking branch 'asoc/for-5.13' into asoc-linus
Diffstat (limited to 'sound/soc/codecs/rt711-sdca.c')
-rw-r--r-- | sound/soc/codecs/rt711-sdca.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sound/soc/codecs/rt711-sdca.c b/sound/soc/codecs/rt711-sdca.c index 24a084e0b48a..2e992589f1e4 100644 --- a/sound/soc/codecs/rt711-sdca.c +++ b/sound/soc/codecs/rt711-sdca.c @@ -1411,6 +1411,8 @@ int rt711_sdca_init(struct device *dev, struct regmap *regmap, rt711->regmap = regmap; rt711->mbq_regmap = mbq_regmap; + mutex_init(&rt711->disable_irq_lock); + /* * Mark hw_init to false * HW init will be performed when device reports present @@ -1494,12 +1496,16 @@ int rt711_sdca_io_init(struct device *dev, struct sdw_slave *slave) int ret = 0; unsigned int val; + rt711->disable_irq = false; + if (rt711->hw_init) return 0; if (rt711->first_hw_init) { regcache_cache_only(rt711->regmap, false); regcache_cache_bypass(rt711->regmap, true); + regcache_cache_only(rt711->mbq_regmap, false); + regcache_cache_bypass(rt711->mbq_regmap, true); } else { /* * PM runtime is only enabled when a Slave reports as Attached @@ -1565,6 +1571,8 @@ int rt711_sdca_io_init(struct device *dev, struct sdw_slave *slave) if (rt711->first_hw_init) { regcache_cache_bypass(rt711->regmap, false); regcache_mark_dirty(rt711->regmap); + regcache_cache_bypass(rt711->mbq_regmap, false); + regcache_mark_dirty(rt711->mbq_regmap); } else rt711->first_hw_init = true; |