Skip to content

Commit 2ca0ec0

Browse files
AngeloGioacchino Del Regnobroonie
authored andcommitted
ASoC: mediatek: mt8195-afe-pcm: Simplify runtime PM during probe
Use devm_pm_runtime_enable() and pm_runtime_resume_and_get() to to simplify the probe function. Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com Link: https://lore.kernel.org/r/20230503113413.149235-4-angelogioacchino.delregno@collabora.com Signed-off-by: Mark Brown <broonie@kernel.org
1 parent 686d041 commit 2ca0ec0

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

sound/soc/mediatek/mt8195/mt8195-afe-pcm.c

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3160,16 +3160,16 @@ static int mt8195_afe_pcm_dev_probe(struct platform_device *pdev)
31603160
dev_dbg(afe->dev, "Cannot find topckgen controller: %ld\n",
31613161
PTR_ERR(afe_priv->topckgen));
31623162

3163-
pm_runtime_enable(dev);
3164-
if (!pm_runtime_enabled(dev)) {
3165-
ret = mt8195_afe_runtime_resume(dev);
3166-
if (ret)
3167-
return ret;
3168-
}
3169-
31703163
/* enable clock for regcache get default value from hw */
31713164
afe_priv->pm_runtime_bypass_reg_ctl = true;
3172-
pm_runtime_get_sync(dev);
3165+
3166+
ret = devm_pm_runtime_enable(dev);
3167+
if (ret)
3168+
return ret;
3169+
3170+
ret = pm_runtime_resume_and_get(dev);
3171+
if (ret)
3172+
return dev_err_probe(dev, ret, "Failed to resume device\n");
31733173

31743174
afe->regmap = devm_regmap_init_mmio(&pdev->dev, afe->base_addr,
31753175
&mt8195_afe_regmap_config);
@@ -3222,7 +3222,10 @@ static int mt8195_afe_pcm_dev_probe(struct platform_device *pdev)
32223222
if (ret)
32233223
goto err_pm_put;
32243224

3225-
pm_runtime_put_sync(dev);
3225+
ret = pm_runtime_put_sync(dev);
3226+
if (ret)
3227+
return dev_err_probe(dev, ret, "Failed to suspend device\n");
3228+
32263229
afe_priv->pm_runtime_bypass_reg_ctl = false;
32273230

32283231
regcache_cache_only(afe->regmap, true);
@@ -3232,7 +3235,6 @@ static int mt8195_afe_pcm_dev_probe(struct platform_device *pdev)
32323235

32333236
err_pm_put:
32343237
pm_runtime_put_sync(dev);
3235-
pm_runtime_disable(dev);
32363238

32373239
return ret;
32383240
}

0 commit comments

Comments
 (0)