ASoC: rockchip: Fix PM usage reference of rockchip_i2s_tdm_resume
authorzhangqilong <zhangqilong3@huawei.com>
Tue, 15 Mar 2022 02:54:15 +0000 (10:54 +0800)
committerMark Brown <broonie@kernel.org>
Wed, 16 Mar 2022 16:39:18 +0000 (16:39 +0000)
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@huawei.com>
Link: https://lore.kernel.org/r/20220315025415.2593762-1-zhangqilong3@huawei.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/rockchip/rockchip_i2s_tdm.c

index 5f9cb5c..d3b7104 100644 (file)
@@ -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);