diff options
author | Sugar Zhang <sugar.zhang@rock-chips.com> | 2019-04-03 16:40:45 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2019-04-04 10:59:33 +0300 |
commit | c85064435fe7a216ec0f0238ef2b8f7cd850a450 (patch) | |
tree | 13653ab28f47cf5b69bf32e90932ea52b5d32e91 /sound/soc/rockchip | |
parent | 42bf029a55a9bb8036f1d738a28dba2f7ec1e79d (diff) | |
download | linux-c85064435fe7a216ec0f0238ef2b8f7cd850a450.tar.xz |
ASoC: rockchip: pdm: fix regmap_ops hang issue
This is because set_fmt ops maybe called when PD is off,
and in such case, regmap_ops will lead system hang.
enale PD before doing regmap_ops.
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/rockchip')
-rw-r--r-- | sound/soc/rockchip/rockchip_pdm.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sound/soc/rockchip/rockchip_pdm.c b/sound/soc/rockchip/rockchip_pdm.c index 400e29edb1c9..8a2e3bbce3a1 100644 --- a/sound/soc/rockchip/rockchip_pdm.c +++ b/sound/soc/rockchip/rockchip_pdm.c @@ -208,7 +208,9 @@ static int rockchip_pdm_set_fmt(struct snd_soc_dai *cpu_dai, return -EINVAL; } + pm_runtime_get_sync(cpu_dai->dev); regmap_update_bits(pdm->regmap, PDM_CLK_CTRL, mask, val); + pm_runtime_put(cpu_dai->dev); return 0; } |