clk: imx: scu: Use pm_runtime_resume_and_get to fix pm_runtime_get_sync() usage
authorMiaoqian Lin <linmq006@gmail.com>
Mon, 25 Apr 2022 01:11:17 +0000 (09:11 +0800)
committerAbel Vesa <abel.vesa@nxp.com>
Mon, 2 May 2022 09:35:06 +0000 (12:35 +0300)
If the device is already in a runtime PM enabled state
pm_runtime_get_sync() will return 1.

Also, we need to call pm_runtime_put_noidle() when pm_runtime_get_sync()
fails, so use pm_runtime_resume_and_get() instead. this function
will handle this.

Fixes: 78edeb080330 ("clk: imx: scu: add runtime pm support")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
Reviewed-by: Abel Vesa <abel.vesa@nxp.com>
Link: https://lore.kernel.org/r/20220425011117.25093-1-linmq006@gmail.com
Signed-off-by: Abel Vesa <abel.vesa@nxp.com>
drivers/clk/imx/clk-scu.c

index ed3c01d2e8ae545a50000ea614d8e73962cafde7..5b022eeb838baa8f20ecfc9385dbbbc753665d52 100644 (file)
@@ -528,7 +528,7 @@ static int imx_clk_scu_probe(struct platform_device *pdev)
                pm_runtime_use_autosuspend(&pdev->dev);
                pm_runtime_enable(dev);
 
-               ret = pm_runtime_get_sync(dev);
+               ret = pm_runtime_resume_and_get(dev);
                if (ret) {
                        pm_genpd_remove_device(dev);
                        pm_runtime_disable(dev);