spi: sh-msiof: Convert to spi core auto_runtime_pm framework
authorGeert Uytterhoeven <geert+renesas@linux-m68k.org>
Tue, 11 Mar 2014 09:59:11 +0000 (10:59 +0100)
committerMark Brown <broonie@linaro.org>
Tue, 11 Mar 2014 10:44:45 +0000 (10:44 +0000)
Signed-off-by: Geert Uytterhoeven <geert+renesas@linux-m68k.org>
Signed-off-by: Mark Brown <broonie@linaro.org>
drivers/spi/spi-sh-msiof.c

index 3ffb8eed5ac500609856bbdf993ef9e074f7c365..b6b013a2f397a352609141d304f05c40405a8ab2 100644 (file)
@@ -449,9 +449,6 @@ static int sh_msiof_prepare_message(struct spi_master *master,
        struct sh_msiof_spi_priv *p = spi_master_get_devdata(master);
        const struct spi_device *spi = msg->spi;
 
-       pm_runtime_get_sync(&p->pdev->dev);
-       clk_enable(p->clk);
-
        /* Configure pins before asserting CS */
        sh_msiof_spi_set_pin_regs(p, !!(spi->mode & SPI_CPOL),
                                  !!(spi->mode & SPI_CPHA),
@@ -461,16 +458,6 @@ static int sh_msiof_prepare_message(struct spi_master *master,
        return 0;
 }
 
-static int sh_msiof_unprepare_message(struct spi_master *master,
-                                     struct spi_message *msg)
-{
-       struct sh_msiof_spi_priv *p = spi_master_get_devdata(master);
-
-       clk_disable(p->clk);
-       pm_runtime_put(&p->pdev->dev);
-       return 0;
-}
-
 static int sh_msiof_spi_txrx_once(struct sh_msiof_spi_priv *p,
                                  void (*tx_fifo)(struct sh_msiof_spi_priv *,
                                                  const void *, int, int),
@@ -743,12 +730,6 @@ 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);
 
@@ -769,8 +750,8 @@ static int sh_msiof_spi_probe(struct platform_device *pdev)
        master->num_chipselect = p->info->num_chipselect;
        master->setup = sh_msiof_spi_setup;
        master->prepare_message = sh_msiof_prepare_message;
-       master->unprepare_message = sh_msiof_unprepare_message;
        master->bits_per_word_mask = SPI_BPW_RANGE_MASK(8, 32);
+       master->auto_runtime_pm = true;
        master->transfer_one = sh_msiof_transfer_one;
 
        ret = devm_spi_register_master(&pdev->dev, master);
@@ -783,7 +764,6 @@ static int sh_msiof_spi_probe(struct platform_device *pdev)
 
  err2:
        pm_runtime_disable(&pdev->dev);
-       clk_unprepare(p->clk);
  err1:
        spi_master_put(master);
        return ret;
@@ -791,10 +771,7 @@ static int sh_msiof_spi_probe(struct platform_device *pdev)
 
 static int sh_msiof_spi_remove(struct platform_device *pdev)
 {
-       struct sh_msiof_spi_priv *p = platform_get_drvdata(pdev);
-
        pm_runtime_disable(&pdev->dev);
-       clk_unprepare(p->clk);
        return 0;
 }