All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 01/11] spi: davinci: Use devm_*() functions
@ 2013-12-09 10:12 Jingoo Han
       [not found] ` <000801cef4c7$1b84a470$528ded50$%han-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
  0 siblings, 1 reply; 31+ messages in thread
From: Jingoo Han @ 2013-12-09 10:12 UTC (permalink / raw)
  To: 'Mark Brown'
  Cc: linux-spi-u79uwXL29TY76Z2rM5mHXA, 'Jingoo Han',
	'Santosh Shilimkar', 'Matt Porter',
	'Manjunathappa, Prakash', 'Sekhar Nori',
	'Murali Karicheri'

Use devm_*() functions to make cleanup paths simpler.

Signed-off-by: Jingoo Han <jg1.han-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
---
 drivers/spi/spi-davinci.c |   41 +++++++++++------------------------------
 1 file changed, 11 insertions(+), 30 deletions(-)

diff --git a/drivers/spi/spi-davinci.c b/drivers/spi/spi-davinci.c
index d3f6386..79d40c8 100644
--- a/drivers/spi/spi-davinci.c
+++ b/drivers/spi/spi-davinci.c
@@ -853,7 +853,7 @@ static int davinci_spi_probe(struct platform_device *pdev)
 	struct spi_master *master;
 	struct davinci_spi *dspi;
 	struct davinci_spi_platform_data *pdata;
-	struct resource *r, *mem;
+	struct resource *r;
 	resource_size_t dma_rx_chan = SPI_NO_RESOURCE;
 	resource_size_t	dma_tx_chan = SPI_NO_RESOURCE;
 	int i = 0, ret = 0;
@@ -894,39 +894,33 @@ static int davinci_spi_probe(struct platform_device *pdev)
 
 	dspi->pbase = r->start;
 
-	mem = request_mem_region(r->start, resource_size(r), pdev->name);
-	if (mem == NULL) {
-		ret = -EBUSY;
+	dspi->base = devm_ioremap_resource(&pdev->dev, r);
+	if (IS_ERR(dspi->base)) {
+		ret = PTR_ERR(dspi->base);
 		goto free_master;
 	}
 
-	dspi->base = ioremap(r->start, resource_size(r));
-	if (dspi->base == NULL) {
-		ret = -ENOMEM;
-		goto release_region;
-	}
-
 	dspi->irq = platform_get_irq(pdev, 0);
 	if (dspi->irq <= 0) {
 		ret = -EINVAL;
-		goto unmap_io;
+		goto free_master;
 	}
 
-	ret = request_threaded_irq(dspi->irq, davinci_spi_irq, dummy_thread_fn,
-				 0, dev_name(&pdev->dev), dspi);
+	ret = devm_request_threaded_irq(&pdev->dev, dspi->irq, davinci_spi_irq,
+				dummy_thread_fn, 0, dev_name(&pdev->dev), dspi);
 	if (ret)
-		goto unmap_io;
+		goto free_master;
 
 	dspi->bitbang.master = master;
 	if (dspi->bitbang.master == NULL) {
 		ret = -ENODEV;
-		goto irq_free;
+		goto free_master;
 	}
 
-	dspi->clk = clk_get(&pdev->dev, NULL);
+	dspi->clk = devm_clk_get(&pdev->dev, NULL);
 	if (IS_ERR(dspi->clk)) {
 		ret = -ENODEV;
-		goto irq_free;
+		goto free_master;
 	}
 	clk_prepare_enable(dspi->clk);
 
@@ -1015,13 +1009,6 @@ free_dma:
 	dma_release_channel(dspi->dma_tx);
 free_clk:
 	clk_disable_unprepare(dspi->clk);
-	clk_put(dspi->clk);
-irq_free:
-	free_irq(dspi->irq, dspi);
-unmap_io:
-	iounmap(dspi->base);
-release_region:
-	release_mem_region(dspi->pbase, resource_size(r));
 free_master:
 	spi_master_put(master);
 err:
@@ -1041,7 +1028,6 @@ static int davinci_spi_remove(struct platform_device *pdev)
 {
 	struct davinci_spi *dspi;
 	struct spi_master *master;
-	struct resource *r;
 
 	master = platform_get_drvdata(pdev);
 	dspi = spi_master_get_devdata(master);
@@ -1049,11 +1035,6 @@ static int davinci_spi_remove(struct platform_device *pdev)
 	spi_bitbang_stop(&dspi->bitbang);
 
 	clk_disable_unprepare(dspi->clk);
-	clk_put(dspi->clk);
-	free_irq(dspi->irq, dspi);
-	iounmap(dspi->base);
-	r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	release_mem_region(dspi->pbase, resource_size(r));
 	spi_master_put(master);
 
 	return 0;
-- 
1.7.10.4


--
To unsubscribe from this list: send the line "unsubscribe linux-spi" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2013-12-18 11:29 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-12-09 10:12 [PATCH 01/11] spi: davinci: Use devm_*() functions Jingoo Han
     [not found] ` <000801cef4c7$1b84a470$528ded50$%han-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2013-12-09 10:13   ` [PATCH 02/11] spi: mpc512x: " Jingoo Han
     [not found]     ` <000e01cef4c7$53d9e060$fb8da120$%han-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2013-12-09 13:12       ` Gerhard Sittig
     [not found]         ` <20131209131213.GL2982-kDjWylLy9wD0K7fsECOQyeGNnDKD8DIp@public.gmane.org>
2013-12-10  2:13           ` Jingoo Han
     [not found]             ` <005601cef54d$7c9b1bf0$75d153d0$%han-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2013-12-12 16:38               ` Gerhard Sittig
2013-12-17 22:53       ` Mark Brown
     [not found]         ` <20131217225313.GT28455-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2013-12-18  1:31           ` [PATCH V2] " Jingoo Han
     [not found]             ` <007001cefb90$d7b07050$871150f0$%han-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2013-12-18 11:29               ` Mark Brown
2013-12-09 10:14   ` [PATCH 03/11] spi: ath79: " Jingoo Han
     [not found]     ` <000f01cef4c7$837d0180$8a770480$%han-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2013-12-17 22:53       ` Mark Brown
2013-12-09 10:16   ` [PATCH 04/11] spi: designware: " Jingoo Han
2013-12-09 10:18   ` [PATCH 05/11] spi: nuc900: " Jingoo Han
     [not found]     ` <001101cef4c7$fb071e20$f1155a60$%han-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2013-12-10  5:51       ` Wan ZongShun
2013-12-10  5:57         ` Jingoo Han
2013-12-17 22:44       ` Mark Brown
2013-12-09 10:19   ` [PATCH 06/11] spi: s3c24xx: " Jingoo Han
     [not found]     ` <001201cef4c8$1b78a110$5269e330$%han-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2013-12-17 22:55       ` Mark Brown
2013-12-09 10:20   ` [PATCH 07/11] spi: bcm63xx: Use devm_clk_get() Jingoo Han
     [not found]     ` <001301cef4c8$40d2b3b0$c2781b10$%han-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2013-12-17 20:28       ` Jonas Gorski
2013-12-17 22:36       ` Mark Brown
2013-12-09 10:20   ` [PATCH 08/11] spi: bcm63xx-hsspi: " Jingoo Han
     [not found]     ` <001401cef4c8$52cf31b0$f86d9510$%han-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2013-12-17 20:29       ` Jonas Gorski
2013-12-17 22:31       ` Mark Brown
2013-12-09 10:21   ` [PATCH 09/11] spi: orion: " Jingoo Han
     [not found]     ` <001501cef4c8$68a7b160$39f71420$%han-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2013-12-09 11:27       ` Jason Cooper
2013-12-09 10:23   ` [PATCH 10/11] spi: txx9: " Jingoo Han
     [not found]     ` <001601cef4c8$aa1f7d30$fe5e7790$%han-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2013-12-17 22:56       ` Mark Brown
2013-12-09 10:25   ` [PATCH 11/11] spi: bcm2835: Use devm_request_irq() Jingoo Han
     [not found]     ` <001701cef4c8$eaa87c30$bff97490$%han-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2013-12-17 22:59       ` Mark Brown
2013-12-18  2:18       ` Stephen Warren
2013-12-17 22:51   ` [PATCH 01/11] spi: davinci: Use devm_*() functions Mark Brown

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.