spi: spi-meson-spifc: Use helper function devm_clk_get_enabled()
[linux-2.6-microblaze.git] / drivers / spi / spi-meson-spifc.c
index 06626f4..d70a188 100644 (file)
@@ -312,19 +312,13 @@ static int meson_spifc_probe(struct platform_device *pdev)
                goto out_err;
        }
 
-       spifc->clk = devm_clk_get(spifc->dev, NULL);
+       spifc->clk = devm_clk_get_enabled(spifc->dev, NULL);
        if (IS_ERR(spifc->clk)) {
                dev_err(spifc->dev, "missing clock\n");
                ret = PTR_ERR(spifc->clk);
                goto out_err;
        }
 
-       ret = clk_prepare_enable(spifc->clk);
-       if (ret) {
-               dev_err(spifc->dev, "can't prepare clock\n");
-               goto out_err;
-       }
-
        rate = clk_get_rate(spifc->clk);
 
        master->num_chipselect = 1;
@@ -343,12 +337,11 @@ static int meson_spifc_probe(struct platform_device *pdev)
        ret = devm_spi_register_master(spifc->dev, master);
        if (ret) {
                dev_err(spifc->dev, "failed to register spi master\n");
-               goto out_clk;
+               goto out_pm;
        }
 
        return 0;
-out_clk:
-       clk_disable_unprepare(spifc->clk);
+out_pm:
        pm_runtime_disable(spifc->dev);
 out_err:
        spi_master_put(master);
@@ -357,11 +350,7 @@ out_err:
 
 static void meson_spifc_remove(struct platform_device *pdev)
 {
-       struct spi_master *master = platform_get_drvdata(pdev);
-       struct meson_spifc *spifc = spi_master_get_devdata(master);
-
        pm_runtime_get_sync(&pdev->dev);
-       clk_disable_unprepare(spifc->clk);
        pm_runtime_disable(&pdev->dev);
 }