[PATCH 5.17 0414/1126] ASoC: rockchip: Fix PM usage reference of rockchip_i2s_tdm_resume

From: Greg Kroah-Hartman
Date: Tue Apr 05 2022 - 04:21:30 EST


From: zhangqilong <zhangqilong3@xxxxxxxxxx>

[ Upstream commit cc5d8ac95663a5813c696008bc524b794d471215 ]

pm_runtime_get_sync will increment pm usage counter
even it failed. Forgetting to putting operation will
result in reference leak here. We fix it by replacing
it with pm_runtime_resume_and_get to keep usage counter
balanced.

Fixes:081068fd64140 ("ASoC: rockchip: add support for i2s-tdm controller")

Signed-off-by: Zhang Qilong <zhangqilong3@xxxxxxxxxx>
Link: https://lore.kernel.org/r/20220315025415.2593762-1-zhangqilong3@xxxxxxxxxx
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
---
sound/soc/rockchip/rockchip_i2s_tdm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sound/soc/rockchip/rockchip_i2s_tdm.c b/sound/soc/rockchip/rockchip_i2s_tdm.c
index 5f9cb5c4c7f0..d3b710406941 100644
--- a/sound/soc/rockchip/rockchip_i2s_tdm.c
+++ b/sound/soc/rockchip/rockchip_i2s_tdm.c
@@ -1738,7 +1738,7 @@ static int __maybe_unused rockchip_i2s_tdm_resume(struct device *dev)
struct rk_i2s_tdm_dev *i2s_tdm = dev_get_drvdata(dev);
int ret;

- ret = pm_runtime_get_sync(dev);
+ ret = pm_runtime_resume_and_get(dev);
if (ret < 0)
return ret;
ret = regcache_sync(i2s_tdm->regmap);
--
2.34.1