diff options
Diffstat (limited to 'drivers/spi/spi-meson-spifc.c')
-rw-r--r-- | drivers/spi/spi-meson-spifc.c | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/drivers/spi/spi-meson-spifc.c b/drivers/spi/spi-meson-spifc.c index de56d38edf40..fd8b26dd4a79 100644 --- a/drivers/spi/spi-meson-spifc.c +++ b/drivers/spi/spi-meson-spifc.c @@ -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); host->num_chipselect = 1; @@ -343,12 +337,11 @@ static int meson_spifc_probe(struct platform_device *pdev) ret = devm_spi_register_controller(spifc->dev, host); if (ret) { dev_err(spifc->dev, "failed to register spi host\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_controller_put(host); @@ -357,11 +350,7 @@ out_err: static void meson_spifc_remove(struct platform_device *pdev) { - struct spi_controller *host = platform_get_drvdata(pdev); - struct meson_spifc *spifc = spi_controller_get_devdata(host); - pm_runtime_get_sync(&pdev->dev); - clk_disable_unprepare(spifc->clk); pm_runtime_disable(&pdev->dev); } |