clk: qcom: use devm_pm_runtime_enable and devm_pm_clk_create
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Sat, 31 Jul 2021 19:50:34 +0000 (22:50 +0300)
committerStephen Boyd <sboyd@kernel.org>
Thu, 26 Aug 2021 18:28:11 +0000 (11:28 -0700)
Use two new helpers instead of pm_runtime_enable() and pm_clk_create(),
removing the need for calling pm_runtime_disable and pm_clk_destroy().

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20210731195034.979084-4-dmitry.baryshkov@linaro.org
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/qcom/camcc-sc7180.c
drivers/clk/qcom/lpass-gfm-sm8250.c
drivers/clk/qcom/lpasscorecc-sc7180.c
drivers/clk/qcom/mss-sc7180.c
drivers/clk/qcom/q6sstop-qcs404.c
drivers/clk/qcom/turingcc-qcs404.c

index 9bcf2f8..ce73ee9 100644 (file)
@@ -1652,32 +1652,35 @@ static int cam_cc_sc7180_probe(struct platform_device *pdev)
        struct regmap *regmap;
        int ret;
 
-       pm_runtime_enable(&pdev->dev);
-       ret = pm_clk_create(&pdev->dev);
+       ret = devm_pm_runtime_enable(&pdev->dev);
+       if (ret < 0)
+               return ret;
+
+       ret = devm_pm_clk_create(&pdev->dev);
        if (ret < 0)
                return ret;
 
        ret = pm_clk_add(&pdev->dev, "xo");
        if (ret < 0) {
                dev_err(&pdev->dev, "Failed to acquire XO clock\n");
-               goto disable_pm_runtime;
+               return ret;
        }
 
        ret = pm_clk_add(&pdev->dev, "iface");
        if (ret < 0) {
                dev_err(&pdev->dev, "Failed to acquire iface clock\n");
-               goto disable_pm_runtime;
+               return ret;
        }
 
        ret = pm_runtime_get(&pdev->dev);
        if (ret)
-               goto destroy_pm_clk;
+               return ret;
 
        regmap = qcom_cc_map(pdev, &cam_cc_sc7180_desc);
        if (IS_ERR(regmap)) {
                ret = PTR_ERR(regmap);
                pm_runtime_put(&pdev->dev);
-               goto destroy_pm_clk;
+               return ret;
        }
 
        clk_fabia_pll_configure(&cam_cc_pll0, regmap, &cam_cc_pll0_config);
@@ -1689,18 +1692,10 @@ static int cam_cc_sc7180_probe(struct platform_device *pdev)
        pm_runtime_put(&pdev->dev);
        if (ret < 0) {
                dev_err(&pdev->dev, "Failed to register CAM CC clocks\n");
-               goto destroy_pm_clk;
+               return ret;
        }
 
        return 0;
-
-destroy_pm_clk:
-       pm_clk_destroy(&pdev->dev);
-
-disable_pm_runtime:
-       pm_runtime_disable(&pdev->dev);
-
-       return ret;
 }
 
 static const struct dev_pm_ops cam_cc_pm_ops = {
index f5e31e6..96f476f 100644 (file)
@@ -251,15 +251,18 @@ static int lpass_gfm_clk_driver_probe(struct platform_device *pdev)
        if (IS_ERR(cc->base))
                return PTR_ERR(cc->base);
 
-       pm_runtime_enable(dev);
-       err = pm_clk_create(dev);
+       err = devm_pm_runtime_enable(dev);
        if (err)
-               goto pm_clk_err;
+               return err;
+
+       err = devm_pm_clk_create(dev);
+       if (err)
+               return err;
 
        err = of_pm_clk_add_clks(dev);
        if (err < 0) {
                dev_dbg(dev, "Failed to get lpass core voting clocks\n");
-               goto clk_reg_err;
+               return err;
        }
 
        for (i = 0; i < data->onecell_data->num; i++) {
@@ -273,22 +276,16 @@ static int lpass_gfm_clk_driver_probe(struct platform_device *pdev)
 
                err = devm_clk_hw_register(dev, &data->gfm_clks[i]->hw);
                if (err)
-                       goto clk_reg_err;
+                       return err;
 
        }
 
        err = devm_of_clk_add_hw_provider(dev, of_clk_hw_onecell_get,
                                          data->onecell_data);
        if (err)
-               goto clk_reg_err;
+               return err;
 
        return 0;
-
-clk_reg_err:
-       pm_clk_destroy(dev);
-pm_clk_err:
-       pm_runtime_disable(dev);
-       return err;
 }
 
 static const struct of_device_id lpass_gfm_clk_match_table[] = {
index 2e0ecc3..ac09b7b 100644 (file)
@@ -356,32 +356,18 @@ static const struct qcom_cc_desc lpass_audio_hm_sc7180_desc = {
        .num_gdscs = ARRAY_SIZE(lpass_audio_hm_sc7180_gdscs),
 };
 
-static void lpass_pm_runtime_disable(void *data)
-{
-       pm_runtime_disable(data);
-}
-
-static void lpass_pm_clk_destroy(void *data)
-{
-       pm_clk_destroy(data);
-}
-
 static int lpass_create_pm_clks(struct platform_device *pdev)
 {
        int ret;
 
        pm_runtime_use_autosuspend(&pdev->dev);
        pm_runtime_set_autosuspend_delay(&pdev->dev, 500);
-       pm_runtime_enable(&pdev->dev);
 
-       ret = devm_add_action_or_reset(&pdev->dev, lpass_pm_runtime_disable, &pdev->dev);
+       ret = devm_pm_runtime_enable(&pdev->dev);
        if (ret)
                return ret;
 
-       ret = pm_clk_create(&pdev->dev);
-       if (ret)
-               return ret;
-       ret = devm_add_action_or_reset(&pdev->dev, lpass_pm_clk_destroy, &pdev->dev);
+       ret = devm_pm_clk_create(&pdev->dev);
        if (ret)
                return ret;
 
index 673fa1a..5a14074 100644 (file)
@@ -73,36 +73,23 @@ static int mss_sc7180_probe(struct platform_device *pdev)
 {
        int ret;
 
-       pm_runtime_enable(&pdev->dev);
-       ret = pm_clk_create(&pdev->dev);
+       ret = devm_pm_runtime_enable(&pdev->dev);
        if (ret)
-               goto disable_pm_runtime;
+               return ret;
+
+       ret = devm_pm_clk_create(&pdev->dev);
+       if (ret)
+               return ret;
 
        ret = pm_clk_add(&pdev->dev, "cfg_ahb");
        if (ret < 0) {
                dev_err(&pdev->dev, "failed to acquire iface clock\n");
-               goto destroy_pm_clk;
+               return ret;
        }
 
        ret = qcom_cc_probe(pdev, &mss_sc7180_desc);
        if (ret < 0)
-               goto destroy_pm_clk;
-
-       return 0;
-
-destroy_pm_clk:
-       pm_clk_destroy(&pdev->dev);
-
-disable_pm_runtime:
-       pm_runtime_disable(&pdev->dev);
-
-       return ret;
-}
-
-static int mss_sc7180_remove(struct platform_device *pdev)
-{
-       pm_clk_destroy(&pdev->dev);
-       pm_runtime_disable(&pdev->dev);
+               return ret;
 
        return 0;
 }
@@ -119,7 +106,6 @@ MODULE_DEVICE_TABLE(of, mss_sc7180_match_table);
 
 static struct platform_driver mss_sc7180_driver = {
        .probe          = mss_sc7180_probe,
-       .remove         = mss_sc7180_remove,
        .driver         = {
                .name           = "sc7180-mss",
                .of_match_table = mss_sc7180_match_table,
index 723f932..507386b 100644 (file)
@@ -159,15 +159,18 @@ static int q6sstopcc_qcs404_probe(struct platform_device *pdev)
        const struct qcom_cc_desc *desc;
        int ret;
 
-       pm_runtime_enable(&pdev->dev);
-       ret = pm_clk_create(&pdev->dev);
+       ret = devm_pm_runtime_enable(&pdev->dev);
        if (ret)
-               goto disable_pm_runtime;
+               return ret;
+
+       ret = devm_pm_clk_create(&pdev->dev);
+       if (ret)
+               return ret;
 
        ret = pm_clk_add(&pdev->dev, NULL);
        if (ret < 0) {
                dev_err(&pdev->dev, "failed to acquire iface clock\n");
-               goto destroy_pm_clk;
+               return ret;
        }
 
        q6sstop_regmap_config.name = "q6sstop_tcsr";
@@ -175,30 +178,14 @@ static int q6sstopcc_qcs404_probe(struct platform_device *pdev)
 
        ret = qcom_cc_probe_by_index(pdev, 1, desc);
        if (ret)
-               goto destroy_pm_clk;
+               return ret;
 
        q6sstop_regmap_config.name = "q6sstop_cc";
        desc = &q6sstop_qcs404_desc;
 
        ret = qcom_cc_probe_by_index(pdev, 0, desc);
        if (ret)
-               goto destroy_pm_clk;
-
-       return 0;
-
-destroy_pm_clk:
-       pm_clk_destroy(&pdev->dev);
-
-disable_pm_runtime:
-       pm_runtime_disable(&pdev->dev);
-
-       return ret;
-}
-
-static int q6sstopcc_qcs404_remove(struct platform_device *pdev)
-{
-       pm_clk_destroy(&pdev->dev);
-       pm_runtime_disable(&pdev->dev);
+               return ret;
 
        return 0;
 }
@@ -209,7 +196,6 @@ static const struct dev_pm_ops q6sstopcc_pm_ops = {
 
 static struct platform_driver q6sstopcc_qcs404_driver = {
        .probe          = q6sstopcc_qcs404_probe,
-       .remove         = q6sstopcc_qcs404_remove,
        .driver         = {
                .name   = "qcs404-q6sstopcc",
                .of_match_table = q6sstopcc_qcs404_match_table,
index 4cfbbf5..4543bda 100644 (file)
@@ -110,36 +110,23 @@ static int turingcc_probe(struct platform_device *pdev)
 {
        int ret;
 
-       pm_runtime_enable(&pdev->dev);
-       ret = pm_clk_create(&pdev->dev);
+       ret = devm_pm_runtime_enable(&pdev->dev);
        if (ret)
-               goto disable_pm_runtime;
+               return ret;
+
+       ret = devm_pm_clk_create(&pdev->dev);
+       if (ret)
+               return ret;
 
        ret = pm_clk_add(&pdev->dev, NULL);
        if (ret < 0) {
                dev_err(&pdev->dev, "failed to acquire iface clock\n");
-               goto destroy_pm_clk;
+               return ret;
        }
 
        ret = qcom_cc_probe(pdev, &turingcc_desc);
        if (ret < 0)
-               goto destroy_pm_clk;
-
-       return 0;
-
-destroy_pm_clk:
-       pm_clk_destroy(&pdev->dev);
-
-disable_pm_runtime:
-       pm_runtime_disable(&pdev->dev);
-
-       return ret;
-}
-
-static int turingcc_remove(struct platform_device *pdev)
-{
-       pm_clk_destroy(&pdev->dev);
-       pm_runtime_disable(&pdev->dev);
+               return ret;
 
        return 0;
 }
@@ -156,7 +143,6 @@ MODULE_DEVICE_TABLE(of, turingcc_match_table);
 
 static struct platform_driver turingcc_driver = {
        .probe          = turingcc_probe,
-       .remove         = turingcc_remove,
        .driver         = {
                .name   = "qcs404-turingcc",
                .of_match_table = turingcc_match_table,