aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/spi
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>2013-11-27 20:39:43 -0500
committerMark Brown <broonie@linaro.org>2013-11-28 05:26:58 -0500
commit5c32d29f13e9f7b94e0e82bf3ed7a1cf6b0c0dd3 (patch)
tree06edd13bfd62ce66ee568865e5e8c63d78d301d2 /drivers/spi
parentb4dd05de3d6fb93724b27921689fb3e95ba71845 (diff)
spi: sh-msiof: Convert to clk_prepare/unprepare
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>
Diffstat (limited to 'drivers/spi')
-rw-r--r--drivers/spi/spi-sh-msiof.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/spi/spi-sh-msiof.c b/drivers/spi/spi-sh-msiof.c
index 7f2bb8572e5c..d96b047afcd2 100644
--- a/drivers/spi/spi-sh-msiof.c
+++ b/drivers/spi/spi-sh-msiof.c
@@ -682,6 +682,12 @@ static int sh_msiof_spi_probe(struct platform_device *pdev)
682 goto err1; 682 goto err1;
683 } 683 }
684 684
685 ret = clk_prepare(p->clk);
686 if (ret < 0) {
687 dev_err(&pdev->dev, "unable to prepare clock\n");
688 goto err1;
689 }
690
685 p->pdev = pdev; 691 p->pdev = pdev;
686 pm_runtime_enable(&pdev->dev); 692 pm_runtime_enable(&pdev->dev);
687 693
@@ -718,6 +724,7 @@ static int sh_msiof_spi_probe(struct platform_device *pdev)
718 return 0; 724 return 0;
719 725
720 pm_runtime_disable(&pdev->dev); 726 pm_runtime_disable(&pdev->dev);
727 clk_unprepare(p->clk);
721 err1: 728 err1:
722 spi_master_put(master); 729 spi_master_put(master);
723 return ret; 730 return ret;
@@ -731,6 +738,7 @@ static int sh_msiof_spi_remove(struct platform_device *pdev)
731 ret = spi_bitbang_stop(&p->bitbang); 738 ret = spi_bitbang_stop(&p->bitbang);
732 if (!ret) { 739 if (!ret) {
733 pm_runtime_disable(&pdev->dev); 740 pm_runtime_disable(&pdev->dev);
741 clk_unprepare(p->clk);
734 spi_master_put(p->bitbang.master); 742 spi_master_put(p->bitbang.master);
735 } 743 }
736 return ret; 744 return ret;