summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorSrinivasa Rao Mandadapu <quic_srivasam@quicinc.com>2022-03-15 20:15:31 +0530
committerMark Brown <broonie@kernel.org>2022-03-16 16:39:32 +0000
commit1c19601ddceda1517511e4bad3d24619e765c78c (patch)
tree490f826d890e28d0cf791d34c7f4186aa8643d26 /sound
parent455c5653f50e10b4f460ef24e99f0044fbe3401c (diff)
ASoC: codecs: Fix misplaced lpass_macro_pds_exit call
Update power domains exit function calling from runtime resume to remove function which was wrongly placed and causing crash in device suspend and resume. Fixes: 9e3d83c52844 ("ASoC: codecs: Add power domains support in digital macro codecs") Signed-off-by: Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com> Co-developed-by: Venkata Prasad Potturu <quic_potturu@quicinc.com> Signed-off-by: Venkata Prasad Potturu <quic_potturu@quicinc.com> Link: https://lore.kernel.org/r/1647355531-4150-1-git-send-email-quic_srivasam@quicinc.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/codecs/lpass-tx-macro.c4
-rw-r--r--sound/soc/codecs/lpass-va-macro.c4
2 files changed, 4 insertions, 4 deletions
diff --git a/sound/soc/codecs/lpass-tx-macro.c b/sound/soc/codecs/lpass-tx-macro.c
index b492d5984819..714a411d5337 100644
--- a/sound/soc/codecs/lpass-tx-macro.c
+++ b/sound/soc/codecs/lpass-tx-macro.c
@@ -1920,6 +1920,8 @@ static int tx_macro_remove(struct platform_device *pdev)
clk_disable_unprepare(tx->npl);
clk_disable_unprepare(tx->fsgen);
+ lpass_macro_pds_exit(tx->pds);
+
return 0;
}
@@ -1964,8 +1966,6 @@ static int __maybe_unused tx_macro_runtime_resume(struct device *dev)
regcache_sync(tx->regmap);
tx->reset_swr = true;
- lpass_macro_pds_exit(tx->pds);
-
return 0;
err_fsgen:
clk_disable_unprepare(tx->npl);
diff --git a/sound/soc/codecs/lpass-va-macro.c b/sound/soc/codecs/lpass-va-macro.c
index 275f2cd78c9c..37674f68616b 100644
--- a/sound/soc/codecs/lpass-va-macro.c
+++ b/sound/soc/codecs/lpass-va-macro.c
@@ -1503,6 +1503,8 @@ static int va_macro_remove(struct platform_device *pdev)
clk_disable_unprepare(va->dcodec);
clk_disable_unprepare(va->macro);
+ lpass_macro_pds_exit(va->pds);
+
return 0;
}
@@ -1532,8 +1534,6 @@ static int __maybe_unused va_macro_runtime_resume(struct device *dev)
regcache_cache_only(va->regmap, false);
regcache_sync(va->regmap);
- lpass_macro_pds_exit(va->pds);
-
return 0;
}