Use devm_pm_runtime_enable() into rz_dmac_probe() and drop unnecessary pm_runtime_disable() from rz_dmac_probe() and rz_dmac_remove(). Signed-off-by: Tommaso Merciai <tommaso.merciai.xr@xxxxxxxxxxxxxx> --- drivers/dma/sh/rz-dmac.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/dma/sh/rz-dmac.c b/drivers/dma/sh/rz-dmac.c index 1f687b08d6b86..0b526cc4d24be 100644 --- a/drivers/dma/sh/rz-dmac.c +++ b/drivers/dma/sh/rz-dmac.c @@ -963,12 +963,15 @@ static int rz_dmac_probe(struct platform_device *pdev) return dev_err_probe(&pdev->dev, PTR_ERR(dmac->rstc), "failed to get resets\n"); - pm_runtime_enable(&pdev->dev); + ret = devm_pm_runtime_enable(&pdev->dev); + if (ret < 0) + return dev_err_probe(&pdev->dev, ret, + "Failed to enable runtime PM\n"); + ret = pm_runtime_resume_and_get(&pdev->dev); - if (ret < 0) { - dev_err(&pdev->dev, "pm_runtime_resume_and_get failed\n"); - goto err_pm_disable; - } + if (ret < 0) + return dev_err_probe(&pdev->dev, ret, + "pm_runtime_resume_and_get failed\n"); ret = reset_control_deassert(dmac->rstc); if (ret) @@ -1031,8 +1034,6 @@ static int rz_dmac_probe(struct platform_device *pdev) reset_control_assert(dmac->rstc); err_pm_runtime_put: pm_runtime_put(&pdev->dev); -err_pm_disable: - pm_runtime_disable(&pdev->dev); return ret; } @@ -1054,7 +1055,6 @@ static void rz_dmac_remove(struct platform_device *pdev) } reset_control_assert(dmac->rstc); pm_runtime_put(&pdev->dev); - pm_runtime_disable(&pdev->dev); platform_device_put(dmac->icu.pdev); } -- 2.43.0