]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: dwc: change to use devm_clk_get_enabled() helpers
authorWu Bo <bo.wu@vivo.com>
Thu, 22 Aug 2024 09:52:49 +0000 (03:52 -0600)
committerMark Brown <broonie@kernel.org>
Thu, 22 Aug 2024 12:34:11 +0000 (13:34 +0100)
Make the code cleaner and avoid call clk_disable_unprepare()

Signed-off-by: Wu Bo <bo.wu@vivo.com>
Link: https://patch.msgid.link/20240822095249.1642713-1-bo.wu@vivo.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/dwc/dwc-i2s.c

index c04466f5492e9a184b7c25cbaf09c96d85abb835..e6a5eebe5bc96290c5c9660cb276ae1e471c4a58 100644 (file)
@@ -995,16 +995,12 @@ static int dw_i2s_probe(struct platform_device *pdev)
                                goto err_assert_reset;
                        }
                }
-               dev->clk = devm_clk_get(&pdev->dev, clk_id);
+               dev->clk = devm_clk_get_enabled(&pdev->dev, clk_id);
 
                if (IS_ERR(dev->clk)) {
                        ret = PTR_ERR(dev->clk);
                        goto err_assert_reset;
                }
-
-               ret = clk_prepare_enable(dev->clk);
-               if (ret < 0)
-                       goto err_assert_reset;
        }
 
        dev_set_drvdata(&pdev->dev, dev);
@@ -1012,7 +1008,7 @@ static int dw_i2s_probe(struct platform_device *pdev)
                                         dw_i2s_dai, 1);
        if (ret != 0) {
                dev_err(&pdev->dev, "not able to register dai\n");
-               goto err_clk_disable;
+               goto err_assert_reset;
        }
 
        if (!pdata || dev->is_jh7110) {
@@ -1030,16 +1026,13 @@ static int dw_i2s_probe(struct platform_device *pdev)
                if (ret) {
                        dev_err(&pdev->dev, "could not register pcm: %d\n",
                                        ret);
-                       goto err_clk_disable;
+                       goto err_assert_reset;
                }
        }
 
        pm_runtime_enable(&pdev->dev);
        return 0;
 
-err_clk_disable:
-       if (dev->capability & DW_I2S_MASTER)
-               clk_disable_unprepare(dev->clk);
 err_assert_reset:
        reset_control_assert(dev->reset);
        return ret;
@@ -1049,9 +1042,6 @@ static void dw_i2s_remove(struct platform_device *pdev)
 {
        struct dw_i2s_dev *dev = dev_get_drvdata(&pdev->dev);
 
-       if (dev->capability & DW_I2S_MASTER)
-               clk_disable_unprepare(dev->clk);
-
        reset_control_assert(dev->reset);
        pm_runtime_disable(&pdev->dev);
 }