]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
spi: sh-msiof: Convert to clk_prepare/unprepare
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Thu, 28 Nov 2013 01:39:43 +0000 (02:39 +0100)
committerMark Brown <broonie@linaro.org>
Thu, 28 Nov 2013 10:26:58 +0000 (10:26 +0000)
Get the driver ready for the migration to the common clock framework by
calling clk_prepare() and clk_unprepare(). The calls are added in the
probe and remove handlers as the clk_enable() and clk_disable() calls
are located in atomic context and there's no callback function in
non-atomic context that can be used to prepare/unprepare the clock.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
drivers/spi/spi-sh-msiof.c

index 7f2bb8572e5cd343202093f37a64b0c5deeac37a..d96b047afcd213e37b3dbfcf43ed69dc20250ae2 100644 (file)
@@ -682,6 +682,12 @@ static int sh_msiof_spi_probe(struct platform_device *pdev)
                goto err1;
        }
 
+       ret = clk_prepare(p->clk);
+       if (ret < 0) {
+               dev_err(&pdev->dev, "unable to prepare clock\n");
+               goto err1;
+       }
+
        p->pdev = pdev;
        pm_runtime_enable(&pdev->dev);
 
@@ -718,6 +724,7 @@ static int sh_msiof_spi_probe(struct platform_device *pdev)
                return 0;
 
        pm_runtime_disable(&pdev->dev);
+       clk_unprepare(p->clk);
  err1:
        spi_master_put(master);
        return ret;
@@ -731,6 +738,7 @@ static int sh_msiof_spi_remove(struct platform_device *pdev)
        ret = spi_bitbang_stop(&p->bitbang);
        if (!ret) {
                pm_runtime_disable(&pdev->dev);
+               clk_unprepare(p->clk);
                spi_master_put(p->bitbang.master);
        }
        return ret;