aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHeiner Kallweit <hkallweit1@gmail.com>2015-09-03 16:40:53 -0400
committerMark Brown <broonie@kernel.org>2015-09-14 13:57:32 -0400
commit8ebe9d163e93e10458f3fd7522f29f9149e58632 (patch)
tree94849db97db1c1fd8fb653cc5bc7c51b28ec4d6c
parent4fcd9b9e06d43b93d00bf02c767d578e7cf8b25c (diff)
spi: s3c64xx: replace clock disabling with runtime PM suspend call in remove function
Simplify s3c64xx_spi_remove by replacing the clock disabling with calling runtime PM suspend which does the same. Waking up the device if it was suspended wouldn't be strictly needed for this driver but using pm_runtime_get_sync is cleaner and makes s3c64xx_spi_remove more consistent with the runtime PM handling in s3c64xx_spi_setup. pm_runtime_force_suspend does most of the work for us: disabling the clocks, disabling runtime PM and setting it to "suspended" state. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--drivers/spi/spi-s3c64xx.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c
index 4e5931cabfa2..dee82e1ae65d 100644
--- a/drivers/spi/spi-s3c64xx.c
+++ b/drivers/spi/spi-s3c64xx.c
@@ -1225,7 +1225,7 @@ static int s3c64xx_spi_remove(struct platform_device *pdev)
1225 struct spi_master *master = spi_master_get(platform_get_drvdata(pdev)); 1225 struct spi_master *master = spi_master_get(platform_get_drvdata(pdev));
1226 struct s3c64xx_spi_driver_data *sdd = spi_master_get_devdata(master); 1226 struct s3c64xx_spi_driver_data *sdd = spi_master_get_devdata(master);
1227 1227
1228 pm_runtime_disable(&pdev->dev); 1228 pm_runtime_get_sync(&pdev->dev);
1229 1229
1230 writel(0, sdd->regs + S3C64XX_SPI_INT_EN); 1230 writel(0, sdd->regs + S3C64XX_SPI_INT_EN);
1231 1231
@@ -1233,6 +1233,10 @@ static int s3c64xx_spi_remove(struct platform_device *pdev)
1233 1233
1234 clk_disable_unprepare(sdd->clk); 1234 clk_disable_unprepare(sdd->clk);
1235 1235
1236 pm_runtime_put_noidle(&pdev->dev);
1237 pm_runtime_disable(&pdev->dev);
1238 pm_runtime_set_suspended(&pdev->dev);
1239
1236 return 0; 1240 return 0;
1237} 1241}
1238 1242