summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorH Hartley Sweeten <hartleys@visionengravers.com>2013-07-02 13:08:21 -0400
committerMark Brown <broonie@linaro.org>2013-07-15 06:37:14 -0400
commite6eb8d9bb7b9c144ae63a5e97a686dd8a3377443 (patch)
tree190d379851b1edf1520e7f5ba6aa0108cf3c7847 /drivers
parentd9b65dfd44fdade5c0fde5f7b8a0f267e99f990d (diff)
spi: spi-ep93xx: use devm_clk_get()
Use devm_clk_get() so that the clk_put() happens automatically when the last reference to this driver is dropped. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Acked-by: Mika Westerberg <mika.westerberg@iki.fi> Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/spi/spi-ep93xx.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/spi/spi-ep93xx.c b/drivers/spi/spi-ep93xx.c
index 8d562526abe5..cc2a2405bd1d 100644
--- a/drivers/spi/spi-ep93xx.c
+++ b/drivers/spi/spi-ep93xx.c
@@ -1016,7 +1016,7 @@ static int ep93xx_spi_probe(struct platform_device *pdev)
1016 1016
1017 espi = spi_master_get_devdata(master); 1017 espi = spi_master_get_devdata(master);
1018 1018
1019 espi->clk = clk_get(&pdev->dev, NULL); 1019 espi->clk = devm_clk_get(&pdev->dev, NULL);
1020 if (IS_ERR(espi->clk)) { 1020 if (IS_ERR(espi->clk)) {
1021 dev_err(&pdev->dev, "unable to get spi clock\n"); 1021 dev_err(&pdev->dev, "unable to get spi clock\n");
1022 error = PTR_ERR(espi->clk); 1022 error = PTR_ERR(espi->clk);
@@ -1039,14 +1039,14 @@ static int ep93xx_spi_probe(struct platform_device *pdev)
1039 espi->regs_base = devm_ioremap_resource(&pdev->dev, res); 1039 espi->regs_base = devm_ioremap_resource(&pdev->dev, res);
1040 if (IS_ERR(espi->regs_base)) { 1040 if (IS_ERR(espi->regs_base)) {
1041 error = PTR_ERR(espi->regs_base); 1041 error = PTR_ERR(espi->regs_base);
1042 goto fail_put_clock; 1042 goto fail_release_master;
1043 } 1043 }
1044 1044
1045 error = devm_request_irq(&pdev->dev, irq, ep93xx_spi_interrupt, 1045 error = devm_request_irq(&pdev->dev, irq, ep93xx_spi_interrupt,
1046 0, "ep93xx-spi", espi); 1046 0, "ep93xx-spi", espi);
1047 if (error) { 1047 if (error) {
1048 dev_err(&pdev->dev, "failed to request irq\n"); 1048 dev_err(&pdev->dev, "failed to request irq\n");
1049 goto fail_put_clock; 1049 goto fail_release_master;
1050 } 1050 }
1051 1051
1052 if (info->use_dma && ep93xx_spi_setup_dma(espi)) 1052 if (info->use_dma && ep93xx_spi_setup_dma(espi))
@@ -1080,8 +1080,6 @@ fail_free_queue:
1080 destroy_workqueue(espi->wq); 1080 destroy_workqueue(espi->wq);
1081fail_free_dma: 1081fail_free_dma:
1082 ep93xx_spi_release_dma(espi); 1082 ep93xx_spi_release_dma(espi);
1083fail_put_clock:
1084 clk_put(espi->clk);
1085fail_release_master: 1083fail_release_master:
1086 spi_master_put(master); 1084 spi_master_put(master);
1087 1085
@@ -1117,7 +1115,6 @@ static int ep93xx_spi_remove(struct platform_device *pdev)
1117 spin_unlock_irq(&espi->lock); 1115 spin_unlock_irq(&espi->lock);
1118 1116
1119 ep93xx_spi_release_dma(espi); 1117 ep93xx_spi_release_dma(espi);
1120 clk_put(espi->clk);
1121 1118
1122 spi_unregister_master(master); 1119 spi_unregister_master(master);
1123 return 0; 1120 return 0;