summaryrefslogtreecommitdiffstats
path: root/drivers/spi/spi-davinci.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/spi/spi-davinci.c')
-rw-r--r--drivers/spi/spi-davinci.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/spi/spi-davinci.c b/drivers/spi/spi-davinci.c
index 8fbfe2483ffd..af2bb73d0168 100644
--- a/drivers/spi/spi-davinci.c
+++ b/drivers/spi/spi-davinci.c
@@ -916,7 +916,7 @@ static int davinci_spi_probe(struct platform_device *pdev)
916 if (ret) 916 if (ret)
917 goto unmap_io; 917 goto unmap_io;
918 918
919 dspi->bitbang.master = spi_master_get(master); 919 dspi->bitbang.master = master;
920 if (dspi->bitbang.master == NULL) { 920 if (dspi->bitbang.master == NULL) {
921 ret = -ENODEV; 921 ret = -ENODEV;
922 goto irq_free; 922 goto irq_free;
@@ -925,7 +925,7 @@ static int davinci_spi_probe(struct platform_device *pdev)
925 dspi->clk = clk_get(&pdev->dev, NULL); 925 dspi->clk = clk_get(&pdev->dev, NULL);
926 if (IS_ERR(dspi->clk)) { 926 if (IS_ERR(dspi->clk)) {
927 ret = -ENODEV; 927 ret = -ENODEV;
928 goto put_master; 928 goto irq_free;
929 } 929 }
930 clk_prepare_enable(dspi->clk); 930 clk_prepare_enable(dspi->clk);
931 931
@@ -1015,8 +1015,6 @@ free_dma:
1015free_clk: 1015free_clk:
1016 clk_disable_unprepare(dspi->clk); 1016 clk_disable_unprepare(dspi->clk);
1017 clk_put(dspi->clk); 1017 clk_put(dspi->clk);
1018put_master:
1019 spi_master_put(master);
1020irq_free: 1018irq_free:
1021 free_irq(dspi->irq, dspi); 1019 free_irq(dspi->irq, dspi);
1022unmap_io: 1020unmap_io:
@@ -1024,7 +1022,7 @@ unmap_io:
1024release_region: 1022release_region:
1025 release_mem_region(dspi->pbase, resource_size(r)); 1023 release_mem_region(dspi->pbase, resource_size(r));
1026free_master: 1024free_master:
1027 kfree(master); 1025 spi_master_put(master);
1028err: 1026err:
1029 return ret; 1027 return ret;
1030} 1028}
@@ -1051,11 +1049,11 @@ static int davinci_spi_remove(struct platform_device *pdev)
1051 1049
1052 clk_disable_unprepare(dspi->clk); 1050 clk_disable_unprepare(dspi->clk);
1053 clk_put(dspi->clk); 1051 clk_put(dspi->clk);
1054 spi_master_put(master);
1055 free_irq(dspi->irq, dspi); 1052 free_irq(dspi->irq, dspi);
1056 iounmap(dspi->base); 1053 iounmap(dspi->base);
1057 r = platform_get_resource(pdev, IORESOURCE_MEM, 0); 1054 r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1058 release_mem_region(dspi->pbase, resource_size(r)); 1055 release_mem_region(dspi->pbase, resource_size(r));
1056 spi_master_put(master);
1059 1057
1060 return 0; 1058 return 0;
1061} 1059}