linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/46] Use dmaenginem_async_device_register to simplify code
@ 2018-08-03  7:19 Huang Shijie
  2018-08-03  7:19 ` [PATCH 01/46] dmaengine: zx_dma: use dmaenginem_async_device_register to simplify the code Huang Shijie
                   ` (47 more replies)
  0 siblings, 48 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

All the patches are using dmaenginem_async_device_register to simplify code
except the last one:
  dmaengine: add COMPILE_TEST for the drivers

I use the last one to do the compiler test.  
There are still 20 drivers which do not use the dmaenginem_async_device_register.
Let me take a rest, if this patch set is accepted, I will do the rest.

Huang Shijie (46):
  dmaengine: zx_dma: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: zynqmp_dma: use dmaenginem_async_device_register to
    simplify the code
  dmaengine: xilinx_dma: use dmaenginem_async_device_register to
    simplify the code
  dmaengine: xgene-dma: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: txx9dmac: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: timb_dma: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: omap-dma: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: edma: use dmaenginem_async_device_register to simplify the
    code
  dmaengine: cppi41: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: tegra210-adma: use helper dmaenginem_async_device_register
  dmaengine: tegra20-apb-dma: use helper
    dmaenginem_async_device_register
  dmaengine: sun6i-dma: use helper dmaenginem_async_device_register
  dmaengine: sun4i-dma: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: coh901318: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: s3c24xx-dma: use dmaenginem_async_device_register to
    simplify the code
  dmaengine: ste_dma40: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: stm32-mdma: use dmaenginem_async_device_register to
    simplify the code
  dmaengine: stm32-dma: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: sprd-dma: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: sirf-dma: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: bam_dma: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: sudmac: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: sa11x0-dma: use dmaenginem_async_device_register to
    simplify the code
  dmaengine: nbpfaxi: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: mmp_tdma: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: shdmac: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: usb-dmac: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: rcar-dmac: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: hidma: use dmaenginem_async_device_register to simplify the
    code
  dmaengine: pxa_dma: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: moxart-dma: use dmaenginem_async_device_register to
    simplify the code
  dmaengine: pl330: use dmaenginem_async_device_register to simplify the
    code
  dmaengine: pch_dma: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: mxs-dma: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: mtk-hsdma: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: k3dma: use dmaenginem_async_device_register to simplify the
    code
  dmaengine: imx-sdma: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: imx-dma: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: img-mdc-dma: use dmaenginem_async_device_register to
    simplify the code
  dmaengine: fsl-edma: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: at_hdmac: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: at_xdmac: use dmaenginem_async_device_register to simplify
    the code
  dmaengine: dma-jz4780: use dmaenginem_async_device_register to
    simplify the code
  dmaengine: dma-jz4740: use dmaenginem_async_device_register to
    simplify the code
  dmaengine: dma-axi-dmac: use dmaenginem_async_device_register to
    simplify the code
  dmaengine: add COMPILE_TEST for the drivers

 drivers/dma/Kconfig              | 24 ++++++++++++------------
 drivers/dma/at_hdmac.c           |  4 +---
 drivers/dma/at_xdmac.c           |  7 ++-----
 drivers/dma/coh901318.c          | 14 ++++----------
 drivers/dma/dma-axi-dmac.c       |  7 ++-----
 drivers/dma/dma-jz4740.c         |  7 ++-----
 drivers/dma/dma-jz4780.c         |  8 ++------
 drivers/dma/fsl-edma.c           |  4 +---
 drivers/dma/img-mdc-dma.c        |  7 ++-----
 drivers/dma/imx-dma.c            |  8 ++------
 drivers/dma/imx-sdma.c           |  7 ++-----
 drivers/dma/k3dma.c              |  7 ++-----
 drivers/dma/mediatek/mtk-hsdma.c |  4 +---
 drivers/dma/mmp_tdma.c           |  7 ++-----
 drivers/dma/moxart-dma.c         |  5 +----
 drivers/dma/mxs-dma.c            |  3 +--
 drivers/dma/nbpfaxi.c            |  7 ++-----
 drivers/dma/pch_dma.c            |  4 +---
 drivers/dma/pl330.c              |  4 +---
 drivers/dma/pxa_dma.c            |  3 +--
 drivers/dma/qcom/bam_dma.c       |  7 ++-----
 drivers/dma/qcom/hidma.c         |  3 +--
 drivers/dma/s3c24xx-dma.c        | 11 +++--------
 drivers/dma/sa11x0-dma.c         |  4 +---
 drivers/dma/sh/rcar-dmac.c       |  5 +----
 drivers/dma/sh/shdmac.c          |  5 +----
 drivers/dma/sh/sudmac.c          |  4 +---
 drivers/dma/sh/usb-dmac.c        |  3 +--
 drivers/dma/sirf-dma.c           |  7 ++-----
 drivers/dma/sprd-dma.c           |  7 ++-----
 drivers/dma/ste_dma40.c          | 14 +++++---------
 drivers/dma/stm32-dma.c          |  3 +--
 drivers/dma/stm32-mdma.c         |  4 +---
 drivers/dma/sun4i-dma.c          |  7 ++-----
 drivers/dma/sun6i-dma.c          |  7 ++-----
 drivers/dma/tegra20-apb-dma.c    |  8 ++------
 drivers/dma/tegra210-adma.c      |  8 ++------
 drivers/dma/ti/Kconfig           |  2 +-
 drivers/dma/ti/cppi41.c          |  7 ++-----
 drivers/dma/ti/edma.c            |  8 ++------
 drivers/dma/ti/omap-dma.c        |  5 +----
 drivers/dma/timb_dma.c           |  3 +--
 drivers/dma/txx9dmac.c           |  4 +---
 drivers/dma/xgene-dma.c          | 16 ++--------------
 drivers/dma/xilinx/xilinx_dma.c  |  5 +----
 drivers/dma/xilinx/zynqmp_dma.c  |  4 +---
 drivers/dma/zx_dma.c             |  7 ++-----
 47 files changed, 88 insertions(+), 221 deletions(-)

-- 
2.17.1


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

* [PATCH 01/46] dmaengine: zx_dma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:19 ` [PATCH 02/46] dmaengine: zynqmp_dma: " Huang Shijie
                   ` (46 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register() to simplify the code.
Remove the code calling dma_async_device_unregister().

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/zx_dma.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/dma/zx_dma.c b/drivers/dma/zx_dma.c
index 2571bc7693df..7febd20113ef 100644
--- a/drivers/dma/zx_dma.c
+++ b/drivers/dma/zx_dma.c
@@ -861,20 +861,18 @@ static int zx_dma_probe(struct platform_device *op)
 	INIT_LIST_HEAD(&d->chan_pending);
 	platform_set_drvdata(op, d);
 
-	ret = dma_async_device_register(&d->slave);
+	ret = dmaenginem_async_device_register(&d->slave);
 	if (ret)
 		goto clk_dis;
 
 	ret = of_dma_controller_register((&op->dev)->of_node,
 					 zx_of_dma_simple_xlate, d);
 	if (ret)
-		goto of_dma_register_fail;
+		goto clk_dis;
 
 	dev_info(&op->dev, "initialized\n");
 	return 0;
 
-of_dma_register_fail:
-	dma_async_device_unregister(&d->slave);
 clk_dis:
 	clk_disable_unprepare(d->clk);
 zx_dma_out:
@@ -889,7 +887,6 @@ static int zx_dma_remove(struct platform_device *op)
 	/* explictly free the irq */
 	devm_free_irq(&op->dev, d->irq, d);
 
-	dma_async_device_unregister(&d->slave);
 	of_dma_controller_free((&op->dev)->of_node);
 
 	list_for_each_entry_safe(c, cn, &d->slave.channels,
-- 
2.17.1


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

* [PATCH 02/46] dmaengine: zynqmp_dma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
  2018-08-03  7:19 ` [PATCH 01/46] dmaengine: zx_dma: use dmaenginem_async_device_register to simplify the code Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:19 ` [PATCH 03/46] dmaengine: xilinx_dma: " Huang Shijie
                   ` (45 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code,
remove dma_async_device_unregister.

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/xilinx/zynqmp_dma.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/dma/xilinx/zynqmp_dma.c b/drivers/dma/xilinx/zynqmp_dma.c
index c74a88b65039..acfc74b68717 100644
--- a/drivers/dma/xilinx/zynqmp_dma.c
+++ b/drivers/dma/xilinx/zynqmp_dma.c
@@ -1085,13 +1085,12 @@ static int zynqmp_dma_probe(struct platform_device *pdev)
 	p->dst_addr_widths = BIT(zdev->chan->bus_width / 8);
 	p->src_addr_widths = BIT(zdev->chan->bus_width / 8);
 
-	dma_async_device_register(&zdev->common);
+	dmaenginem_async_device_register(&zdev->common);
 
 	ret = of_dma_controller_register(pdev->dev.of_node,
 					 of_zynqmp_dma_xlate, zdev);
 	if (ret) {
 		dev_err(&pdev->dev, "Unable to register DMA to DT\n");
-		dma_async_device_unregister(&zdev->common);
 		goto free_chan_resources;
 	}
 
@@ -1122,7 +1121,6 @@ static int zynqmp_dma_remove(struct platform_device *pdev)
 	struct zynqmp_dma_device *zdev = platform_get_drvdata(pdev);
 
 	of_dma_controller_free(pdev->dev.of_node);
-	dma_async_device_unregister(&zdev->common);
 
 	zynqmp_dma_chan_remove(zdev->chan);
 	pm_runtime_disable(zdev->dev);
-- 
2.17.1


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

* [PATCH 03/46] dmaengine: xilinx_dma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
  2018-08-03  7:19 ` [PATCH 01/46] dmaengine: zx_dma: use dmaenginem_async_device_register to simplify the code Huang Shijie
  2018-08-03  7:19 ` [PATCH 02/46] dmaengine: zynqmp_dma: " Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:19 ` [PATCH 04/46] dmaengine: xgene-dma: " Huang Shijie
                   ` (44 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code,
remove dma_async_device_unregister.

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/xilinx/xilinx_dma.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/dma/xilinx/xilinx_dma.c b/drivers/dma/xilinx/xilinx_dma.c
index c12442312595..97ffeb5e59bb 100644
--- a/drivers/dma/xilinx/xilinx_dma.c
+++ b/drivers/dma/xilinx/xilinx_dma.c
@@ -2705,13 +2705,12 @@ static int xilinx_dma_probe(struct platform_device *pdev)
 	}
 
 	/* Register the DMA engine with the core */
-	dma_async_device_register(&xdev->common);
+	dmaenginem_async_device_register(&xdev->common);
 
 	err = of_dma_controller_register(node, of_dma_xilinx_xlate,
 					 xdev);
 	if (err < 0) {
 		dev_err(&pdev->dev, "Unable to register DMA to DT\n");
-		dma_async_device_unregister(&xdev->common);
 		goto error;
 	}
 
@@ -2747,8 +2746,6 @@ static int xilinx_dma_remove(struct platform_device *pdev)
 
 	of_dma_controller_free(pdev->dev.of_node);
 
-	dma_async_device_unregister(&xdev->common);
-
 	for (i = 0; i < xdev->nr_channels; i++)
 		if (xdev->chan[i])
 			xilinx_dma_chan_remove(xdev->chan[i]);
-- 
2.17.1


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

* [PATCH 04/46] dmaengine: xgene-dma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (2 preceding siblings ...)
  2018-08-03  7:19 ` [PATCH 03/46] dmaengine: xilinx_dma: " Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:19 ` [PATCH 05/46] dmaengine: txx9dmac: " Huang Shijie
                   ` (43 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
   remove xgene_dma_async_register
   remove dma_async_device_unregister

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/xgene-dma.c | 16 ++--------------
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/drivers/dma/xgene-dma.c b/drivers/dma/xgene-dma.c
index 1d5988849aa6..192322bbdc29 100644
--- a/drivers/dma/xgene-dma.c
+++ b/drivers/dma/xgene-dma.c
@@ -1564,7 +1564,7 @@ static int xgene_dma_async_register(struct xgene_dma *pdma, int id)
 	list_add_tail(&chan->dma_chan.device_node, &dma_dev->channels);
 
 	/* Register with Linux async DMA framework*/
-	ret = dma_async_device_register(dma_dev);
+	ret = dmaenginem_async_device_register(dma_dev);
 	if (ret) {
 		chan_err(chan, "Failed to register async device %d", ret);
 		tasklet_kill(&chan->tasklet);
@@ -1588,10 +1588,8 @@ static int xgene_dma_init_async(struct xgene_dma *pdma)
 	for (i = 0; i < XGENE_DMA_MAX_CHANNEL ; i++) {
 		ret = xgene_dma_async_register(pdma, i);
 		if (ret) {
-			for (j = 0; j < i; j++) {
-				dma_async_device_unregister(&pdma->dma_dev[j]);
+			for (j = 0; j < i; j++)
 				tasklet_kill(&pdma->chan[j].tasklet);
-			}
 
 			return ret;
 		}
@@ -1600,14 +1598,6 @@ static int xgene_dma_init_async(struct xgene_dma *pdma)
 	return ret;
 }
 
-static void xgene_dma_async_unregister(struct xgene_dma *pdma)
-{
-	int i;
-
-	for (i = 0; i < XGENE_DMA_MAX_CHANNEL; i++)
-		dma_async_device_unregister(&pdma->dma_dev[i]);
-}
-
 static void xgene_dma_init_channels(struct xgene_dma *pdma)
 {
 	struct xgene_dma_chan *chan;
@@ -1796,8 +1786,6 @@ static int xgene_dma_remove(struct platform_device *pdev)
 	struct xgene_dma_chan *chan;
 	int i;
 
-	xgene_dma_async_unregister(pdma);
-
 	/* Mask interrupts and disable DMA engine */
 	xgene_dma_mask_interrupts(pdma);
 	xgene_dma_disable(pdma);
-- 
2.17.1


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

* [PATCH 05/46] dmaengine: txx9dmac: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (3 preceding siblings ...)
  2018-08-03  7:19 ` [PATCH 04/46] dmaengine: xgene-dma: " Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:19 ` [PATCH 06/46] dmaengine: timb_dma: " Huang Shijie
                   ` (42 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
     remove dma_async_device_unregister

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/txx9dmac.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/dma/txx9dmac.c b/drivers/dma/txx9dmac.c
index eb45af71d3a3..1e97bee485d7 100644
--- a/drivers/dma/txx9dmac.c
+++ b/drivers/dma/txx9dmac.c
@@ -1147,7 +1147,7 @@ static int __init txx9dmac_chan_probe(struct platform_device *pdev)
 
 	platform_set_drvdata(pdev, dc);
 
-	err = dma_async_device_register(&dc->dma);
+	err = dmaenginem_async_device_register(&dc->dma);
 	if (err)
 		return err;
 	dev_dbg(&pdev->dev, "TXx9 DMA Channel (dma%d%s%s)\n",
@@ -1162,8 +1162,6 @@ static int txx9dmac_chan_remove(struct platform_device *pdev)
 {
 	struct txx9dmac_chan *dc = platform_get_drvdata(pdev);
 
-
-	dma_async_device_unregister(&dc->dma);
 	if (dc->irq >= 0) {
 		devm_free_irq(&pdev->dev, dc->irq, dc);
 		tasklet_kill(&dc->tasklet);
-- 
2.17.1


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

* [PATCH 06/46] dmaengine: timb_dma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (4 preceding siblings ...)
  2018-08-03  7:19 ` [PATCH 05/46] dmaengine: txx9dmac: " Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:19 ` [PATCH 07/46] dmaengine: omap-dma: " Huang Shijie
                   ` (41 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
   remove dma_async_device_unregister

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/timb_dma.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/dma/timb_dma.c b/drivers/dma/timb_dma.c
index 395c698edb4d..39e1ba2347db 100644
--- a/drivers/dma/timb_dma.c
+++ b/drivers/dma/timb_dma.c
@@ -723,7 +723,7 @@ static int td_probe(struct platform_device *pdev)
 		list_add_tail(&td_chan->chan.device_node, &td->dma.channels);
 	}
 
-	err = dma_async_device_register(&td->dma);
+	err = dmaenginem_async_device_register(&td->dma);
 	if (err) {
 		dev_err(&pdev->dev, "Failed to register async device\n");
 		goto err_free_irq;
@@ -754,7 +754,6 @@ static int td_remove(struct platform_device *pdev)
 	struct resource *iomem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	int irq = platform_get_irq(pdev, 0);
 
-	dma_async_device_unregister(&td->dma);
 	free_irq(irq, td);
 	tasklet_kill(&td->tasklet);
 	iounmap(td->membase);
-- 
2.17.1


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

* [PATCH 07/46] dmaengine: omap-dma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (5 preceding siblings ...)
  2018-08-03  7:19 ` [PATCH 06/46] dmaengine: timb_dma: " Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:47   ` Peter Ujfalusi
  2018-08-03  7:19 ` [PATCH 08/46] dmaengine: edma: " Huang Shijie
                   ` (40 subsequent siblings)
  47 siblings, 1 reply; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
   remove dma_async_device_unregister

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/ti/omap-dma.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/dma/ti/omap-dma.c b/drivers/dma/ti/omap-dma.c
index a4a931ddf6f6..085748c6eb67 100644
--- a/drivers/dma/ti/omap-dma.c
+++ b/drivers/dma/ti/omap-dma.c
@@ -1566,7 +1566,7 @@ static int omap_dma_probe(struct platform_device *pdev)
 		}
 	}
 
-	rc = dma_async_device_register(&od->ddev);
+	rc = dmaenginem_async_device_register(&od->ddev);
 	if (rc) {
 		pr_warn("OMAP-DMA: failed to register slave DMA engine device: %d\n",
 			rc);
@@ -1584,7 +1584,6 @@ static int omap_dma_probe(struct platform_device *pdev)
 				of_dma_simple_xlate, &omap_dma_info);
 		if (rc) {
 			pr_warn("OMAP-DMA: failed to register DMA controller\n");
-			dma_async_device_unregister(&od->ddev);
 			omap_dma_free(od);
 		}
 	}
@@ -1606,8 +1605,6 @@ static int omap_dma_remove(struct platform_device *pdev)
 	irq = platform_get_irq(pdev, 1);
 	devm_free_irq(&pdev->dev, irq, od);
 
-	dma_async_device_unregister(&od->ddev);
-
 	if (!od->legacy) {
 		/* Disable all interrupts */
 		omap_dma_glbl_write(od, IRQENABLE_L0, 0);
-- 
2.17.1


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

* [PATCH 08/46] dmaengine: edma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (6 preceding siblings ...)
  2018-08-03  7:19 ` [PATCH 07/46] dmaengine: omap-dma: " Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:50   ` Peter Ujfalusi
  2018-08-03  7:19 ` [PATCH 09/46] dmaengine: cppi41: " Huang Shijie
                   ` (39 subsequent siblings)
  47 siblings, 1 reply; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
   remove dma_async_device_unregister

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/ti/edma.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/dma/ti/edma.c b/drivers/dma/ti/edma.c
index ceabdea40ae0..28ba1e722c47 100644
--- a/drivers/dma/ti/edma.c
+++ b/drivers/dma/ti/edma.c
@@ -2388,18 +2388,17 @@ static int edma_probe(struct platform_device *pdev)
 	ecc->dma_slave.filter.mapcnt = info->slavecnt;
 	ecc->dma_slave.filter.fn = edma_filter_fn;
 
-	ret = dma_async_device_register(&ecc->dma_slave);
+	ret = dmaenginem_async_device_register(&ecc->dma_slave);
 	if (ret) {
 		dev_err(dev, "slave ddev registration failed (%d)\n", ret);
 		goto err_reg1;
 	}
 
 	if (ecc->dma_memcpy) {
-		ret = dma_async_device_register(ecc->dma_memcpy);
+		ret = dmaenginem_async_device_register(ecc->dma_memcpy);
 		if (ret) {
 			dev_err(dev, "memcpy ddev registration failed (%d)\n",
 				ret);
-			dma_async_device_unregister(&ecc->dma_slave);
 			goto err_reg1;
 		}
 	}
@@ -2439,9 +2438,6 @@ static int edma_remove(struct platform_device *pdev)
 
 	if (dev->of_node)
 		of_dma_controller_free(dev->of_node);
-	dma_async_device_unregister(&ecc->dma_slave);
-	if (ecc->dma_memcpy)
-		dma_async_device_unregister(ecc->dma_memcpy);
 	edma_free_slot(ecc, ecc->dummy_slot);
 
 	return 0;
-- 
2.17.1


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

* [PATCH 09/46] dmaengine: cppi41: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (7 preceding siblings ...)
  2018-08-03  7:19 ` [PATCH 08/46] dmaengine: edma: " Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:55   ` Peter Ujfalusi
  2018-08-03  7:19 ` [PATCH 10/46] dmaengine: tegra210-adma: use helper dmaenginem_async_device_register Huang Shijie
                   ` (38 subsequent siblings)
  47 siblings, 1 reply; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
   remove dma_async_device_unregister

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/ti/cppi41.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/dma/ti/cppi41.c b/drivers/dma/ti/cppi41.c
index 1497da367710..d2998a19ed2e 100644
--- a/drivers/dma/ti/cppi41.c
+++ b/drivers/dma/ti/cppi41.c
@@ -1096,21 +1096,19 @@ static int cppi41_dma_probe(struct platform_device *pdev)
 		goto err_chans;
 	cdd->irq = irq;
 
-	ret = dma_async_device_register(&cdd->ddev);
+	ret = dmaenginem_async_device_register(&cdd->ddev);
 	if (ret)
 		goto err_chans;
 
 	ret = of_dma_controller_register(dev->of_node,
 			cppi41_dma_xlate, &cpp41_dma_info);
 	if (ret)
-		goto err_of;
+		goto err_chans;
 
 	pm_runtime_mark_last_busy(dev);
 	pm_runtime_put_autosuspend(dev);
 
 	return 0;
-err_of:
-	dma_async_device_unregister(&cdd->ddev);
 err_chans:
 	deinit_cppi41(dev, cdd);
 err_init_cppi:
@@ -1132,7 +1130,6 @@ static int cppi41_dma_remove(struct platform_device *pdev)
 		dev_err(&pdev->dev, "%s could not pm_runtime_get: %i\n",
 			__func__, error);
 	of_dma_controller_free(pdev->dev.of_node);
-	dma_async_device_unregister(&cdd->ddev);
 
 	devm_free_irq(&pdev->dev, cdd->irq, cdd);
 	deinit_cppi41(&pdev->dev, cdd);
-- 
2.17.1


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

* [PATCH 10/46] dmaengine: tegra210-adma: use helper dmaenginem_async_device_register
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (8 preceding siblings ...)
  2018-08-03  7:19 ` [PATCH 09/46] dmaengine: cppi41: " Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:19 ` [PATCH 11/46] dmaengine: tegra20-apb-dma: " Huang Shijie
                   ` (37 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
   remove dma_async_device_unregister
   remove the label dma_remove

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/tegra210-adma.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/dma/tegra210-adma.c b/drivers/dma/tegra210-adma.c
index b26256f23d67..bd99f12a00e3 100644
--- a/drivers/dma/tegra210-adma.c
+++ b/drivers/dma/tegra210-adma.c
@@ -746,7 +746,7 @@ static int tegra_adma_probe(struct platform_device *pdev)
 	tdma->dma_dev.directions = BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_DEV);
 	tdma->dma_dev.residue_granularity = DMA_RESIDUE_GRANULARITY_SEGMENT;
 
-	ret = dma_async_device_register(&tdma->dma_dev);
+	ret = dmaenginem_async_device_register(&tdma->dma_dev);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "ADMA registration failed: %d\n", ret);
 		goto irq_dispose;
@@ -756,7 +756,7 @@ static int tegra_adma_probe(struct platform_device *pdev)
 					 tegra_dma_of_xlate, tdma);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "ADMA OF registration failed %d\n", ret);
-		goto dma_remove;
+		goto irq_dispose;
 	}
 
 	pm_runtime_put(&pdev->dev);
@@ -766,8 +766,6 @@ static int tegra_adma_probe(struct platform_device *pdev)
 
 	return 0;
 
-dma_remove:
-	dma_async_device_unregister(&tdma->dma_dev);
 irq_dispose:
 	while (--i >= 0)
 		irq_dispose_mapping(tdma->channels[i].irq);
@@ -786,8 +784,6 @@ static int tegra_adma_remove(struct platform_device *pdev)
 	struct tegra_adma *tdma = platform_get_drvdata(pdev);
 	int i;
 
-	dma_async_device_unregister(&tdma->dma_dev);
-
 	for (i = 0; i < tdma->nr_channels; ++i)
 		irq_dispose_mapping(tdma->channels[i].irq);
 
-- 
2.17.1


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

* [PATCH 11/46] dmaengine: tegra20-apb-dma: use helper dmaenginem_async_device_register
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (9 preceding siblings ...)
  2018-08-03  7:19 ` [PATCH 10/46] dmaengine: tegra210-adma: use helper dmaenginem_async_device_register Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:19 ` [PATCH 12/46] dmaengine: sun6i-dma: " Huang Shijie
                   ` (36 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
   remove dma_async_device_unregister
   remove the label err_unregister_dma_dev

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/tegra20-apb-dma.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/dma/tegra20-apb-dma.c b/drivers/dma/tegra20-apb-dma.c
index 9a558e30c461..9f6f51abbeef 100644
--- a/drivers/dma/tegra20-apb-dma.c
+++ b/drivers/dma/tegra20-apb-dma.c
@@ -1444,7 +1444,7 @@ static int tegra_dma_probe(struct platform_device *pdev)
 	tdma->dma_dev.device_tx_status = tegra_dma_tx_status;
 	tdma->dma_dev.device_issue_pending = tegra_dma_issue_pending;
 
-	ret = dma_async_device_register(&tdma->dma_dev);
+	ret = dmaenginem_async_device_register(&tdma->dma_dev);
 	if (ret < 0) {
 		dev_err(&pdev->dev,
 			"Tegra20 APB DMA driver registration failed %d\n", ret);
@@ -1456,15 +1456,13 @@ static int tegra_dma_probe(struct platform_device *pdev)
 	if (ret < 0) {
 		dev_err(&pdev->dev,
 			"Tegra20 APB DMA OF registration failed %d\n", ret);
-		goto err_unregister_dma_dev;
+		goto err_irq;
 	}
 
 	dev_info(&pdev->dev, "Tegra20 APB DMA driver register %d channels\n",
 			cdata->nr_channels);
 	return 0;
 
-err_unregister_dma_dev:
-	dma_async_device_unregister(&tdma->dma_dev);
 err_irq:
 	while (--i >= 0) {
 		struct tegra_dma_channel *tdc = &tdma->channels[i];
@@ -1485,8 +1483,6 @@ static int tegra_dma_remove(struct platform_device *pdev)
 	int i;
 	struct tegra_dma_channel *tdc;
 
-	dma_async_device_unregister(&tdma->dma_dev);
-
 	for (i = 0; i < tdma->chip_data->nr_channels; ++i) {
 		tdc = &tdma->channels[i];
 		free_irq(tdc->irq, tdc);
-- 
2.17.1


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

* [PATCH 12/46] dmaengine: sun6i-dma: use helper dmaenginem_async_device_register
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (10 preceding siblings ...)
  2018-08-03  7:19 ` [PATCH 11/46] dmaengine: tegra20-apb-dma: " Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:19 ` [PATCH 13/46] dmaengine: sun4i-dma: use dmaenginem_async_device_register to simplify the code Huang Shijie
                   ` (35 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
   remove dma_async_device_unregister
   remove the label err_dma_unregister

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/sun6i-dma.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/dma/sun6i-dma.c b/drivers/dma/sun6i-dma.c
index 0cd13f17fc11..419d6090f9e1 100644
--- a/drivers/dma/sun6i-dma.c
+++ b/drivers/dma/sun6i-dma.c
@@ -1319,7 +1319,7 @@ static int sun6i_dma_probe(struct platform_device *pdev)
 		goto err_clk_disable;
 	}
 
-	ret = dma_async_device_register(&sdc->slave);
+	ret = dmaenginem_async_device_register(&sdc->slave);
 	if (ret) {
 		dev_warn(&pdev->dev, "Failed to register DMA engine device\n");
 		goto err_irq_disable;
@@ -1329,7 +1329,7 @@ static int sun6i_dma_probe(struct platform_device *pdev)
 					 sdc);
 	if (ret) {
 		dev_err(&pdev->dev, "of_dma_controller_register failed\n");
-		goto err_dma_unregister;
+		goto err_irq_disable;
 	}
 
 	if (sdc->cfg->clock_autogate_enable)
@@ -1337,8 +1337,6 @@ static int sun6i_dma_probe(struct platform_device *pdev)
 
 	return 0;
 
-err_dma_unregister:
-	dma_async_device_unregister(&sdc->slave);
 err_irq_disable:
 	sun6i_kill_tasklet(sdc);
 err_clk_disable:
@@ -1355,7 +1353,6 @@ static int sun6i_dma_remove(struct platform_device *pdev)
 	struct sun6i_dma_dev *sdc = platform_get_drvdata(pdev);
 
 	of_dma_controller_free(pdev->dev.of_node);
-	dma_async_device_unregister(&sdc->slave);
 
 	sun6i_kill_tasklet(sdc);
 
-- 
2.17.1


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

* [PATCH 13/46] dmaengine: sun4i-dma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (11 preceding siblings ...)
  2018-08-03  7:19 ` [PATCH 12/46] dmaengine: sun6i-dma: " Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:19 ` [PATCH 14/46] dmaengine: coh901318: " Huang Shijie
                   ` (34 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
   remove dma_async_device_unregister
   remove label err_dma_unregister

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/sun4i-dma.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/dma/sun4i-dma.c b/drivers/dma/sun4i-dma.c
index f4ed3f17607c..c80a59c1fc38 100644
--- a/drivers/dma/sun4i-dma.c
+++ b/drivers/dma/sun4i-dma.c
@@ -1228,7 +1228,7 @@ static int sun4i_dma_probe(struct platform_device *pdev)
 		goto err_clk_disable;
 	}
 
-	ret = dma_async_device_register(&priv->slave);
+	ret = dmaenginem_async_device_register(&priv->slave);
 	if (ret) {
 		dev_warn(&pdev->dev, "Failed to register DMA engine device\n");
 		goto err_clk_disable;
@@ -1238,15 +1238,13 @@ static int sun4i_dma_probe(struct platform_device *pdev)
 					 priv);
 	if (ret) {
 		dev_err(&pdev->dev, "of_dma_controller_register failed\n");
-		goto err_dma_unregister;
+		goto err_clk_disable;
 	}
 
 	dev_dbg(&pdev->dev, "Successfully probed SUN4I_DMA\n");
 
 	return 0;
 
-err_dma_unregister:
-	dma_async_device_unregister(&priv->slave);
 err_clk_disable:
 	clk_disable_unprepare(priv->clk);
 	return ret;
@@ -1260,7 +1258,6 @@ static int sun4i_dma_remove(struct platform_device *pdev)
 	disable_irq(priv->irq);
 
 	of_dma_controller_free(pdev->dev.of_node);
-	dma_async_device_unregister(&priv->slave);
 
 	clk_disable_unprepare(priv->clk);
 
-- 
2.17.1


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

* [PATCH 14/46] dmaengine: coh901318: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (12 preceding siblings ...)
  2018-08-03  7:19 ` [PATCH 13/46] dmaengine: sun4i-dma: use dmaenginem_async_device_register to simplify the code Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:19 ` [PATCH 15/46] dmaengine: s3c24xx-dma: " Huang Shijie
                   ` (33 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
   remove dma_async_device_unregister
   remove label err_register_of_dma,err_register_memcpy

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/coh901318.c | 14 ++++----------
 1 file changed, 4 insertions(+), 10 deletions(-)

diff --git a/drivers/dma/coh901318.c b/drivers/dma/coh901318.c
index da74fd74636b..ff29f2f6ce3b 100644
--- a/drivers/dma/coh901318.c
+++ b/drivers/dma/coh901318.c
@@ -2690,7 +2690,7 @@ static int __init coh901318_probe(struct platform_device *pdev)
 	base->dma_slave.device_terminate_all = coh901318_terminate_all;
 	base->dma_slave.dev = &pdev->dev;
 
-	err = dma_async_device_register(&base->dma_slave);
+	err = dmaenginem_async_device_register(&base->dma_slave);
 
 	if (err)
 		goto err_register_slave;
@@ -2717,15 +2717,15 @@ static int __init coh901318_probe(struct platform_device *pdev)
 	 * i.e. 2^2
 	 */
 	base->dma_memcpy.copy_align = DMAENGINE_ALIGN_4_BYTES;
-	err = dma_async_device_register(&base->dma_memcpy);
+	err = dmaenginem_async_device_register(&base->dma_memcpy);
 
 	if (err)
-		goto err_register_memcpy;
+		goto err_register_slave;
 
 	err = of_dma_controller_register(pdev->dev.of_node, coh901318_xlate,
 					 base);
 	if (err)
-		goto err_register_of_dma;
+		goto err_register_slave;
 
 	platform_set_drvdata(pdev, base);
 	dev_info(&pdev->dev, "Initialized COH901318 DMA on virtual base 0x%p\n",
@@ -2733,10 +2733,6 @@ static int __init coh901318_probe(struct platform_device *pdev)
 
 	return err;
 
- err_register_of_dma:
-	dma_async_device_unregister(&base->dma_memcpy);
- err_register_memcpy:
-	dma_async_device_unregister(&base->dma_slave);
  err_register_slave:
 	coh901318_pool_destroy(&base->pool);
 	return err;
@@ -2767,8 +2763,6 @@ static int coh901318_remove(struct platform_device *pdev)
 	coh901318_base_remove(base, dma_memcpy_channels);
 
 	of_dma_controller_free(pdev->dev.of_node);
-	dma_async_device_unregister(&base->dma_memcpy);
-	dma_async_device_unregister(&base->dma_slave);
 	coh901318_pool_destroy(&base->pool);
 	return 0;
 }
-- 
2.17.1


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

* [PATCH 15/46] dmaengine: s3c24xx-dma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (13 preceding siblings ...)
  2018-08-03  7:19 ` [PATCH 14/46] dmaengine: coh901318: " Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:19 ` [PATCH 16/46] dmaengine: ste_dma40: " Huang Shijie
                   ` (32 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.
	remove label err_slave_reg

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/s3c24xx-dma.c | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/drivers/dma/s3c24xx-dma.c b/drivers/dma/s3c24xx-dma.c
index 64744eb88720..1d820c0cd14b 100644
--- a/drivers/dma/s3c24xx-dma.c
+++ b/drivers/dma/s3c24xx-dma.c
@@ -1330,7 +1330,7 @@ static int s3c24xx_dma_probe(struct platform_device *pdev)
 		goto err_slave;
 	}
 
-	ret = dma_async_device_register(&s3cdma->memcpy);
+	ret = dmaenginem_async_device_register(&s3cdma->memcpy);
 	if (ret) {
 		dev_warn(&pdev->dev,
 			"%s failed to register memcpy as an async device - %d\n",
@@ -1338,12 +1338,12 @@ static int s3c24xx_dma_probe(struct platform_device *pdev)
 		goto err_memcpy_reg;
 	}
 
-	ret = dma_async_device_register(&s3cdma->slave);
+	ret = dmaenginem_async_device_register(&s3cdma->slave);
 	if (ret) {
 		dev_warn(&pdev->dev,
 			"%s failed to register slave as an async device - %d\n",
 			__func__, ret);
-		goto err_slave_reg;
+		goto err_memcpy_reg;
 	}
 
 	platform_set_drvdata(pdev, s3cdma);
@@ -1352,8 +1352,6 @@ static int s3c24xx_dma_probe(struct platform_device *pdev)
 
 	return 0;
 
-err_slave_reg:
-	dma_async_device_unregister(&s3cdma->memcpy);
 err_memcpy_reg:
 	s3c24xx_dma_free_virtual_channels(&s3cdma->slave);
 err_slave:
@@ -1388,9 +1386,6 @@ static int s3c24xx_dma_remove(struct platform_device *pdev)
 	struct soc_data *sdata = s3c24xx_dma_get_soc_data(pdev);
 	int i;
 
-	dma_async_device_unregister(&s3cdma->slave);
-	dma_async_device_unregister(&s3cdma->memcpy);
-
 	s3c24xx_dma_free_irq(pdev, s3cdma);
 
 	s3c24xx_dma_free_virtual_channels(&s3cdma->slave);
-- 
2.17.1


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

* [PATCH 16/46] dmaengine: ste_dma40: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (14 preceding siblings ...)
  2018-08-03  7:19 ` [PATCH 15/46] dmaengine: s3c24xx-dma: " Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:19 ` [PATCH 17/46] dmaengine: stm32-mdma: " Huang Shijie
                   ` (31 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.
	remove label unregister_slave, unregister_memcpy

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/ste_dma40.c | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/drivers/dma/ste_dma40.c b/drivers/dma/ste_dma40.c
index f4edfc56f34e..5e328bd10c27 100644
--- a/drivers/dma/ste_dma40.c
+++ b/drivers/dma/ste_dma40.c
@@ -2839,7 +2839,7 @@ static int __init d40_dmaengine_init(struct d40_base *base,
 
 	d40_ops_init(base, &base->dma_slave);
 
-	err = dma_async_device_register(&base->dma_slave);
+	err = dmaenginem_async_device_register(&base->dma_slave);
 
 	if (err) {
 		d40_err(base->dev, "Failed to register slave channels\n");
@@ -2854,12 +2854,12 @@ static int __init d40_dmaengine_init(struct d40_base *base,
 
 	d40_ops_init(base, &base->dma_memcpy);
 
-	err = dma_async_device_register(&base->dma_memcpy);
+	err = dmaenginem_async_device_register(&base->dma_memcpy);
 
 	if (err) {
 		d40_err(base->dev,
 			"Failed to register memcpy only channels\n");
-		goto unregister_slave;
+		goto exit;
 	}
 
 	d40_chan_init(base, &base->dma_both, base->phy_chans,
@@ -2871,18 +2871,14 @@ static int __init d40_dmaengine_init(struct d40_base *base,
 	dma_cap_set(DMA_CYCLIC, base->dma_slave.cap_mask);
 
 	d40_ops_init(base, &base->dma_both);
-	err = dma_async_device_register(&base->dma_both);
+	err = dmaenginem_async_device_register(&base->dma_both);
 
 	if (err) {
 		d40_err(base->dev,
 			"Failed to register logical and physical capable channels\n");
-		goto unregister_memcpy;
+		goto exit;
 	}
 	return 0;
- unregister_memcpy:
-	dma_async_device_unregister(&base->dma_memcpy);
- unregister_slave:
-	dma_async_device_unregister(&base->dma_slave);
  exit:
 	return err;
 }
-- 
2.17.1


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

* [PATCH 17/46] dmaengine: stm32-mdma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (15 preceding siblings ...)
  2018-08-03  7:19 ` [PATCH 16/46] dmaengine: ste_dma40: " Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  8:10   ` Pierre Yves MORDRET
  2018-08-03  7:19 ` [PATCH 18/46] dmaengine: stm32-dma: " Huang Shijie
                   ` (30 subsequent siblings)
  47 siblings, 1 reply; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/stm32-mdma.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/dma/stm32-mdma.c b/drivers/dma/stm32-mdma.c
index 06dd1725375e..390e4cae0e1a 100644
--- a/drivers/dma/stm32-mdma.c
+++ b/drivers/dma/stm32-mdma.c
@@ -1656,7 +1656,7 @@ static int stm32_mdma_probe(struct platform_device *pdev)
 		return ret;
 	}
 
-	ret = dma_async_device_register(dd);
+	ret = dmaenginem_async_device_register(dd);
 	if (ret)
 		return ret;
 
@@ -1674,8 +1674,6 @@ static int stm32_mdma_probe(struct platform_device *pdev)
 	return 0;
 
 err_unregister:
-	dma_async_device_unregister(dd);
-
 	return ret;
 }
 
-- 
2.17.1


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

* [PATCH 18/46] dmaengine: stm32-dma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (16 preceding siblings ...)
  2018-08-03  7:19 ` [PATCH 17/46] dmaengine: stm32-mdma: " Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:19 ` [PATCH 19/46] dmaengine: sprd-dma: " Huang Shijie
                   ` (29 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/stm32-dma.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/dma/stm32-dma.c b/drivers/dma/stm32-dma.c
index 379e8d534e61..6bbb3fab4f13 100644
--- a/drivers/dma/stm32-dma.c
+++ b/drivers/dma/stm32-dma.c
@@ -1295,7 +1295,7 @@ static int stm32_dma_probe(struct platform_device *pdev)
 		vchan_init(&chan->vchan, dd);
 	}
 
-	ret = dma_async_device_register(dd);
+	ret = dmaenginem_async_device_register(dd);
 	if (ret)
 		return ret;
 
@@ -1334,7 +1334,6 @@ static int stm32_dma_probe(struct platform_device *pdev)
 	return 0;
 
 err_unregister:
-	dma_async_device_unregister(dd);
 
 	return ret;
 }
-- 
2.17.1


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

* [PATCH 19/46] dmaengine: sprd-dma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (17 preceding siblings ...)
  2018-08-03  7:19 ` [PATCH 18/46] dmaengine: stm32-dma: " Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:19 ` [PATCH 20/46] dmaengine: sirf-dma: " Huang Shijie
                   ` (28 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.
	remove label err_of_register

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/sprd-dma.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/dma/sprd-dma.c b/drivers/dma/sprd-dma.c
index 55df0d41355b..d06459d1f96f 100644
--- a/drivers/dma/sprd-dma.c
+++ b/drivers/dma/sprd-dma.c
@@ -943,7 +943,7 @@ static int sprd_dma_probe(struct platform_device *pdev)
 	if (ret < 0)
 		goto err_rpm;
 
-	ret = dma_async_device_register(&sdev->dma_dev);
+	ret = dmaenginem_async_device_register(&sdev->dma_dev);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "register dma device failed:%d\n", ret);
 		goto err_register;
@@ -953,13 +953,11 @@ static int sprd_dma_probe(struct platform_device *pdev)
 	ret = of_dma_controller_register(np, of_dma_simple_xlate,
 					 &sprd_dma_info);
 	if (ret)
-		goto err_of_register;
+		goto err_register;
 
 	pm_runtime_put(&pdev->dev);
 	return 0;
 
-err_of_register:
-	dma_async_device_unregister(&sdev->dma_dev);
 err_register:
 	pm_runtime_put_noidle(&pdev->dev);
 	pm_runtime_disable(&pdev->dev);
@@ -989,7 +987,6 @@ static int sprd_dma_remove(struct platform_device *pdev)
 	}
 
 	of_dma_controller_free(pdev->dev.of_node);
-	dma_async_device_unregister(&sdev->dma_dev);
 	sprd_dma_disable(sdev);
 
 	pm_runtime_put_noidle(&pdev->dev);
-- 
2.17.1


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

* [PATCH 20/46] dmaengine: sirf-dma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (18 preceding siblings ...)
  2018-08-03  7:19 ` [PATCH 19/46] dmaengine: sprd-dma: " Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:19 ` [PATCH 21/46] dmaengine: bam_dma: " Huang Shijie
                   ` (27 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.
	remove label unreg_dma_dev

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/sirf-dma.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/dma/sirf-dma.c b/drivers/dma/sirf-dma.c
index a0733ac3edb1..de19880d4254 100644
--- a/drivers/dma/sirf-dma.c
+++ b/drivers/dma/sirf-dma.c
@@ -944,7 +944,7 @@ static int sirfsoc_dma_probe(struct platform_device *op)
 	/* Register DMA engine */
 	dev_set_drvdata(dev, sdma);
 
-	ret = dma_async_device_register(dma);
+	ret = dmaenginem_async_device_register(dma);
 	if (ret)
 		goto free_irq;
 
@@ -952,7 +952,7 @@ static int sirfsoc_dma_probe(struct platform_device *op)
 	ret = of_dma_controller_register(dn, of_dma_sirfsoc_xlate, sdma);
 	if (ret) {
 		dev_err(dev, "failed to register DMA controller\n");
-		goto unreg_dma_dev;
+		goto free_irq;
 	}
 
 	pm_runtime_enable(&op->dev);
@@ -960,8 +960,6 @@ static int sirfsoc_dma_probe(struct platform_device *op)
 
 	return 0;
 
-unreg_dma_dev:
-	dma_async_device_unregister(dma);
 free_irq:
 	free_irq(sdma->irq, sdma);
 irq_dispose:
@@ -975,7 +973,6 @@ static int sirfsoc_dma_remove(struct platform_device *op)
 	struct sirfsoc_dma *sdma = dev_get_drvdata(dev);
 
 	of_dma_controller_free(op->dev.of_node);
-	dma_async_device_unregister(&sdma->dma);
 	free_irq(sdma->irq, sdma);
 	tasklet_kill(&sdma->tasklet);
 	irq_dispose_mapping(sdma->irq);
-- 
2.17.1


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

* [PATCH 21/46] dmaengine: bam_dma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (19 preceding siblings ...)
  2018-08-03  7:19 ` [PATCH 20/46] dmaengine: sirf-dma: " Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:19 ` [PATCH 22/46] dmaengine: sudmac: " Huang Shijie
                   ` (26 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.
	remove label err_unregister_dma

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/qcom/bam_dma.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/dma/qcom/bam_dma.c b/drivers/dma/qcom/bam_dma.c
index 1617715aa6e0..d164892a8aa4 100644
--- a/drivers/dma/qcom/bam_dma.c
+++ b/drivers/dma/qcom/bam_dma.c
@@ -1332,7 +1332,7 @@ static int bam_dma_probe(struct platform_device *pdev)
 	bdev->common.device_tx_status = bam_tx_status;
 	bdev->common.dev = bdev->dev;
 
-	ret = dma_async_device_register(&bdev->common);
+	ret = dmaenginem_async_device_register(&bdev->common);
 	if (ret) {
 		dev_err(bdev->dev, "failed to register dma async device\n");
 		goto err_bam_channel_exit;
@@ -1341,7 +1341,7 @@ static int bam_dma_probe(struct platform_device *pdev)
 	ret = of_dma_controller_register(pdev->dev.of_node, bam_dma_xlate,
 					&bdev->common);
 	if (ret)
-		goto err_unregister_dma;
+		goto err_bam_channel_exit;
 
 	if (bdev->controlled_remotely) {
 		pm_runtime_disable(&pdev->dev);
@@ -1357,8 +1357,6 @@ static int bam_dma_probe(struct platform_device *pdev)
 
 	return 0;
 
-err_unregister_dma:
-	dma_async_device_unregister(&bdev->common);
 err_bam_channel_exit:
 	for (i = 0; i < bdev->num_channels; i++)
 		tasklet_kill(&bdev->channels[i].vc.task);
@@ -1378,7 +1376,6 @@ static int bam_dma_remove(struct platform_device *pdev)
 	pm_runtime_force_suspend(&pdev->dev);
 
 	of_dma_controller_free(pdev->dev.of_node);
-	dma_async_device_unregister(&bdev->common);
 
 	/* mask all interrupts for this execution environment */
 	writel_relaxed(0, bam_addr(bdev, 0,  BAM_IRQ_SRCS_MSK_EE));
-- 
2.17.1


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

* [PATCH 22/46] dmaengine: sudmac: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (20 preceding siblings ...)
  2018-08-03  7:19 ` [PATCH 21/46] dmaengine: bam_dma: " Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:19 ` [PATCH 23/46] dmaengine: sa11x0-dma: " Huang Shijie
                   ` (25 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.
	remove label err_slave_reg

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/sh/sudmac.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/dma/sh/sudmac.c b/drivers/dma/sh/sudmac.c
index 69b9564dc9d9..f861067edef4 100644
--- a/drivers/dma/sh/sudmac.c
+++ b/drivers/dma/sh/sudmac.c
@@ -376,7 +376,7 @@ static int sudmac_probe(struct platform_device *pdev)
 			goto chan_probe_err;
 	}
 
-	err = dma_async_device_register(&su_dev->shdma_dev.dma_dev);
+	err = dmaenginem_async_device_register(&su_dev->shdma_dev.dma_dev);
 	if (err < 0)
 		goto chan_probe_err;
 
@@ -393,9 +393,7 @@ static int sudmac_probe(struct platform_device *pdev)
 static int sudmac_remove(struct platform_device *pdev)
 {
 	struct sudmac_device *su_dev = platform_get_drvdata(pdev);
-	struct dma_device *dma_dev = &su_dev->shdma_dev.dma_dev;
 
-	dma_async_device_unregister(dma_dev);
 	sudmac_chan_remove(su_dev);
 	shdma_cleanup(&su_dev->shdma_dev);
 
-- 
2.17.1


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

* [PATCH 23/46] dmaengine: sa11x0-dma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (21 preceding siblings ...)
  2018-08-03  7:19 ` [PATCH 22/46] dmaengine: sudmac: " Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:19 ` [PATCH 24/46] dmaengine: nbpfaxi: " Huang Shijie
                   ` (24 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/sa11x0-dma.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/dma/sa11x0-dma.c b/drivers/dma/sa11x0-dma.c
index b31d07c7d93c..9181d6048f43 100644
--- a/drivers/dma/sa11x0-dma.c
+++ b/drivers/dma/sa11x0-dma.c
@@ -863,7 +863,7 @@ static int sa11x0_dma_init_dmadev(struct dma_device *dmadev,
 		vchan_init(&c->vc, dmadev);
 	}
 
-	return dma_async_device_register(dmadev);
+	return dmaenginem_async_device_register(dmadev);
 }
 
 static int sa11x0_dma_request_irq(struct platform_device *pdev, int nr,
@@ -987,8 +987,6 @@ static int sa11x0_dma_remove(struct platform_device *pdev)
 	struct sa11x0_dma_dev *d = platform_get_drvdata(pdev);
 	unsigned pch;
 
-	dma_async_device_unregister(&d->slave);
-
 	sa11x0_dma_free_channels(&d->slave);
 	for (pch = 0; pch < NR_PHY_CHAN; pch++)
 		sa11x0_dma_free_irq(pdev, pch, &d->phy[pch]);
-- 
2.17.1


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

* [PATCH 24/46] dmaengine: nbpfaxi: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (22 preceding siblings ...)
  2018-08-03  7:19 ` [PATCH 23/46] dmaengine: sa11x0-dma: " Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:19 ` [PATCH 25/46] dmaengine: mmp_tdma: " Huang Shijie
                   ` (23 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.
	remove label e_dma_dev_unreg

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/nbpfaxi.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/dma/nbpfaxi.c b/drivers/dma/nbpfaxi.c
index 8c7b2e8703da..def82e77f321 100644
--- a/drivers/dma/nbpfaxi.c
+++ b/drivers/dma/nbpfaxi.c
@@ -1437,18 +1437,16 @@ static int nbpf_probe(struct platform_device *pdev)
 
 	nbpf_configure(nbpf);
 
-	ret = dma_async_device_register(dma_dev);
+	ret = dmaenginem_async_device_register(dma_dev);
 	if (ret < 0)
 		goto e_clk_off;
 
 	ret = of_dma_controller_register(np, nbpf_of_xlate, nbpf);
 	if (ret < 0)
-		goto e_dma_dev_unreg;
+		goto e_clk_off;
 
 	return 0;
 
-e_dma_dev_unreg:
-	dma_async_device_unregister(dma_dev);
 e_clk_off:
 	clk_disable_unprepare(nbpf->clk);
 
@@ -1471,7 +1469,6 @@ static int nbpf_remove(struct platform_device *pdev)
 	}
 
 	of_dma_controller_free(pdev->dev.of_node);
-	dma_async_device_unregister(&nbpf->dma_dev);
 	clk_disable_unprepare(nbpf->clk);
 
 	return 0;
-- 
2.17.1


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

* [PATCH 25/46] dmaengine: mmp_tdma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (23 preceding siblings ...)
  2018-08-03  7:19 ` [PATCH 24/46] dmaengine: nbpfaxi: " Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:19 ` [PATCH 26/46] dmaengine: shdmac: " Huang Shijie
                   ` (22 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.
	return error if it fails.

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/mmp_tdma.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/dma/mmp_tdma.c b/drivers/dma/mmp_tdma.c
index 13c68b6434ce..9f5869e1a017 100644
--- a/drivers/dma/mmp_tdma.c
+++ b/drivers/dma/mmp_tdma.c
@@ -530,9 +530,6 @@ static void mmp_tdma_issue_pending(struct dma_chan *chan)
 
 static int mmp_tdma_remove(struct platform_device *pdev)
 {
-	struct mmp_tdma_device *tdev = platform_get_drvdata(pdev);
-
-	dma_async_device_unregister(&tdev->device);
 	return 0;
 }
 
@@ -696,7 +693,7 @@ static int mmp_tdma_probe(struct platform_device *pdev)
 	dma_set_mask(&pdev->dev, DMA_BIT_MASK(64));
 	platform_set_drvdata(pdev, tdev);
 
-	ret = dma_async_device_register(&tdev->device);
+	ret = dmaenginem_async_device_register(&tdev->device);
 	if (ret) {
 		dev_err(tdev->device.dev, "unable to register\n");
 		return ret;
@@ -708,7 +705,7 @@ static int mmp_tdma_probe(struct platform_device *pdev)
 		if (ret) {
 			dev_err(tdev->device.dev,
 				"failed to register controller\n");
-			dma_async_device_unregister(&tdev->device);
+			return ret;
 		}
 	}
 
-- 
2.17.1


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

* [PATCH 26/46] dmaengine: shdmac: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (24 preceding siblings ...)
  2018-08-03  7:19 ` [PATCH 25/46] dmaengine: mmp_tdma: " Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:19 ` [PATCH 27/46] dmaengine: usb-dmac: " Huang Shijie
                   ` (21 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/sh/shdmac.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/dma/sh/shdmac.c b/drivers/dma/sh/shdmac.c
index 04a74e0a95b7..52060cd21e79 100644
--- a/drivers/dma/sh/shdmac.c
+++ b/drivers/dma/sh/shdmac.c
@@ -866,7 +866,7 @@ static int sh_dmae_probe(struct platform_device *pdev)
 
 	pm_runtime_put(&pdev->dev);
 
-	err = dma_async_device_register(&shdev->shdma_dev.dma_dev);
+	err = dmaenginem_async_device_register(&shdev->shdma_dev.dma_dev);
 	if (err < 0)
 		goto edmadevreg;
 
@@ -897,9 +897,6 @@ static int sh_dmae_probe(struct platform_device *pdev)
 static int sh_dmae_remove(struct platform_device *pdev)
 {
 	struct sh_dmae_device *shdev = platform_get_drvdata(pdev);
-	struct dma_device *dma_dev = &shdev->shdma_dev.dma_dev;
-
-	dma_async_device_unregister(dma_dev);
 
 	spin_lock_irq(&sh_dmae_lock);
 	list_del_rcu(&shdev->node);
-- 
2.17.1


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

* [PATCH 27/46] dmaengine: usb-dmac: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (25 preceding siblings ...)
  2018-08-03  7:19 ` [PATCH 26/46] dmaengine: shdmac: " Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:19 ` [PATCH 28/46] dmaengine: rcar-dmac: " Huang Shijie
                   ` (20 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/sh/usb-dmac.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/dma/sh/usb-dmac.c b/drivers/dma/sh/usb-dmac.c
index 1bb1a8e09025..c09d7c65c2c5 100644
--- a/drivers/dma/sh/usb-dmac.c
+++ b/drivers/dma/sh/usb-dmac.c
@@ -849,7 +849,7 @@ static int usb_dmac_probe(struct platform_device *pdev)
 	engine->device_tx_status = usb_dmac_tx_status;
 	engine->device_issue_pending = usb_dmac_issue_pending;
 
-	ret = dma_async_device_register(engine);
+	ret = dmaenginem_async_device_register(engine);
 	if (ret < 0)
 		goto error;
 
@@ -879,7 +879,6 @@ static int usb_dmac_remove(struct platform_device *pdev)
 	for (i = 0; i < dmac->n_channels; ++i)
 		usb_dmac_chan_remove(dmac, &dmac->channels[i]);
 	of_dma_controller_free(pdev->dev.of_node);
-	dma_async_device_unregister(&dmac->engine);
 
 	pm_runtime_disable(&pdev->dev);
 
-- 
2.17.1


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

* [PATCH 28/46] dmaengine: rcar-dmac: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (26 preceding siblings ...)
  2018-08-03  7:19 ` [PATCH 27/46] dmaengine: usb-dmac: " Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:19 ` [PATCH 29/46] dmaengine: hidma: " Huang Shijie
                   ` (19 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/sh/rcar-dmac.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar-dmac.c
index 48ee35e2bce6..87130b3eef5c 100644
--- a/drivers/dma/sh/rcar-dmac.c
+++ b/drivers/dma/sh/rcar-dmac.c
@@ -1884,7 +1884,7 @@ static int rcar_dmac_probe(struct platform_device *pdev)
 	 *
 	 * Default transfer size of 32 bytes requires 32-byte alignment.
 	 */
-	ret = dma_async_device_register(engine);
+	ret = dmaenginem_async_device_register(engine);
 	if (ret < 0)
 		goto error;
 
@@ -1898,10 +1898,7 @@ static int rcar_dmac_probe(struct platform_device *pdev)
 
 static int rcar_dmac_remove(struct platform_device *pdev)
 {
-	struct rcar_dmac *dmac = platform_get_drvdata(pdev);
-
 	of_dma_controller_free(pdev->dev.of_node);
-	dma_async_device_unregister(&dmac->engine);
 
 	pm_runtime_disable(&pdev->dev);
 
-- 
2.17.1


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

* [PATCH 29/46] dmaengine: hidma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (27 preceding siblings ...)
  2018-08-03  7:19 ` [PATCH 28/46] dmaengine: rcar-dmac: " Huang Shijie
@ 2018-08-03  7:19 ` Huang Shijie
  2018-08-03  7:20 ` [PATCH 30/46] dmaengine: pxa_dma: " Huang Shijie
                   ` (18 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:19 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/qcom/hidma.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/dma/qcom/hidma.c b/drivers/dma/qcom/hidma.c
index 43d4b00b8138..1d8130edea58 100644
--- a/drivers/dma/qcom/hidma.c
+++ b/drivers/dma/qcom/hidma.c
@@ -877,7 +877,7 @@ static int hidma_probe(struct platform_device *pdev)
 	if (rc)
 		goto uninit;
 
-	rc = dma_async_device_register(&dmadev->ddev);
+	rc = dmaenginem_async_device_register(&dmadev->ddev);
 	if (rc)
 		goto uninit;
 
@@ -924,7 +924,6 @@ static int hidma_remove(struct platform_device *pdev)
 	struct hidma_dev *dmadev = platform_get_drvdata(pdev);
 
 	pm_runtime_get_sync(dmadev->ddev.dev);
-	dma_async_device_unregister(&dmadev->ddev);
 	if (!dmadev->lldev->msi_support)
 		devm_free_irq(dmadev->ddev.dev, dmadev->irq, dmadev->lldev);
 	else
-- 
2.17.1


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

* [PATCH 30/46] dmaengine: pxa_dma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (28 preceding siblings ...)
  2018-08-03  7:19 ` [PATCH 29/46] dmaengine: hidma: " Huang Shijie
@ 2018-08-03  7:20 ` Huang Shijie
  2018-08-03  7:20 ` [PATCH 31/46] dmaengine: moxart-dma: " Huang Shijie
                   ` (17 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:20 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/pxa_dma.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/dma/pxa_dma.c b/drivers/dma/pxa_dma.c
index b31c28b67ad3..21001ea078fb 100644
--- a/drivers/dma/pxa_dma.c
+++ b/drivers/dma/pxa_dma.c
@@ -1285,7 +1285,6 @@ static int pxad_remove(struct platform_device *op)
 
 	pxad_cleanup_debugfs(pdev);
 	pxad_free_channels(&pdev->slave);
-	dma_async_device_unregister(&pdev->slave);
 	return 0;
 }
 
@@ -1396,7 +1395,7 @@ static int pxad_init_dmadev(struct platform_device *op,
 		init_waitqueue_head(&c->wq_state);
 	}
 
-	return dma_async_device_register(&pdev->slave);
+	return dmaenginem_async_device_register(&pdev->slave);
 }
 
 static int pxad_probe(struct platform_device *op)
-- 
2.17.1


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

* [PATCH 31/46] dmaengine: moxart-dma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (29 preceding siblings ...)
  2018-08-03  7:20 ` [PATCH 30/46] dmaengine: pxa_dma: " Huang Shijie
@ 2018-08-03  7:20 ` Huang Shijie
  2018-08-03  7:20 ` [PATCH 32/46] dmaengine: pl330: " Huang Shijie
                   ` (16 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:20 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/moxart-dma.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/dma/moxart-dma.c b/drivers/dma/moxart-dma.c
index e04499c1f27f..80bff27c5f9b 100644
--- a/drivers/dma/moxart-dma.c
+++ b/drivers/dma/moxart-dma.c
@@ -618,7 +618,7 @@ static int moxart_probe(struct platform_device *pdev)
 	}
 	mdc->irq = irq;
 
-	ret = dma_async_device_register(&mdc->dma_slave);
+	ret = dmaenginem_async_device_register(&mdc->dma_slave);
 	if (ret) {
 		dev_err(dev, "dma_async_device_register failed\n");
 		return ret;
@@ -627,7 +627,6 @@ static int moxart_probe(struct platform_device *pdev)
 	ret = of_dma_controller_register(node, moxart_of_xlate, mdc);
 	if (ret) {
 		dev_err(dev, "of_dma_controller_register failed\n");
-		dma_async_device_unregister(&mdc->dma_slave);
 		return ret;
 	}
 
@@ -642,8 +641,6 @@ static int moxart_remove(struct platform_device *pdev)
 
 	devm_free_irq(&pdev->dev, m->irq, m);
 
-	dma_async_device_unregister(&m->dma_slave);
-
 	if (pdev->dev.of_node)
 		of_dma_controller_free(pdev->dev.of_node);
 
-- 
2.17.1


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

* [PATCH 32/46] dmaengine: pl330: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (30 preceding siblings ...)
  2018-08-03  7:20 ` [PATCH 31/46] dmaengine: moxart-dma: " Huang Shijie
@ 2018-08-03  7:20 ` Huang Shijie
  2018-08-03  7:20 ` [PATCH 33/46] dmaengine: pch_dma: " Huang Shijie
                   ` (15 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:20 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/pl330.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c
index 88750a34e859..e4bc330132c7 100644
--- a/drivers/dma/pl330.c
+++ b/drivers/dma/pl330.c
@@ -3037,7 +3037,7 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id)
 	pd->max_burst = ((pl330->quirks & PL330_QUIRK_BROKEN_NO_FLUSHP) ?
 			 1 : PL330_MAX_BURST);
 
-	ret = dma_async_device_register(pd);
+	ret = dmaenginem_async_device_register(pd);
 	if (ret) {
 		dev_err(&adev->dev, "unable to register DMAC\n");
 		goto probe_err3;
@@ -3114,8 +3114,6 @@ static int pl330_remove(struct amba_device *adev)
 			devm_free_irq(&adev->dev, irq, pl330);
 	}
 
-	dma_async_device_unregister(&pl330->ddma);
-
 	/* Idle the DMAC */
 	list_for_each_entry_safe(pch, _p, &pl330->ddma.channels,
 			chan.device_node) {
-- 
2.17.1


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

* [PATCH 33/46] dmaengine: pch_dma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (31 preceding siblings ...)
  2018-08-03  7:20 ` [PATCH 32/46] dmaengine: pl330: " Huang Shijie
@ 2018-08-03  7:20 ` Huang Shijie
  2018-08-03  7:20 ` [PATCH 34/46] dmaengine: mxs-dma: " Huang Shijie
                   ` (14 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:20 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/pch_dma.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/dma/pch_dma.c b/drivers/dma/pch_dma.c
index afd8f27bda96..505463d077c0 100644
--- a/drivers/dma/pch_dma.c
+++ b/drivers/dma/pch_dma.c
@@ -922,7 +922,7 @@ static int pch_dma_probe(struct pci_dev *pdev,
 	pd->dma.device_prep_slave_sg = pd_prep_slave_sg;
 	pd->dma.device_terminate_all = pd_device_terminate_all;
 
-	err = dma_async_device_register(&pd->dma);
+	err = dmaenginem_async_device_register(&pd->dma);
 	if (err) {
 		dev_err(&pdev->dev, "Failed to register DMA device\n");
 		goto err_free_pool;
@@ -952,8 +952,6 @@ static void pch_dma_remove(struct pci_dev *pdev)
 	struct dma_chan *chan, *_c;
 
 	if (pd) {
-		dma_async_device_unregister(&pd->dma);
-
 		free_irq(pdev->irq, pd);
 
 		list_for_each_entry_safe(chan, _c, &pd->dma.channels,
-- 
2.17.1


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

* [PATCH 34/46] dmaengine: mxs-dma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (32 preceding siblings ...)
  2018-08-03  7:20 ` [PATCH 33/46] dmaengine: pch_dma: " Huang Shijie
@ 2018-08-03  7:20 ` Huang Shijie
  2018-08-03  7:20 ` [PATCH 35/46] dmaengine: mtk-hsdma: " Huang Shijie
                   ` (13 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:20 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/mxs-dma.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/dma/mxs-dma.c b/drivers/dma/mxs-dma.c
index ae5182ff0128..35193b31a9e0 100644
--- a/drivers/dma/mxs-dma.c
+++ b/drivers/dma/mxs-dma.c
@@ -847,7 +847,7 @@ static int __init mxs_dma_probe(struct platform_device *pdev)
 	mxs_dma->dma_device.residue_granularity = DMA_RESIDUE_GRANULARITY_BURST;
 	mxs_dma->dma_device.device_issue_pending = mxs_dma_enable_chan;
 
-	ret = dma_async_device_register(&mxs_dma->dma_device);
+	ret = dmaenginem_async_device_register(&mxs_dma->dma_device);
 	if (ret) {
 		dev_err(mxs_dma->dma_device.dev, "unable to register\n");
 		return ret;
@@ -857,7 +857,6 @@ static int __init mxs_dma_probe(struct platform_device *pdev)
 	if (ret) {
 		dev_err(mxs_dma->dma_device.dev,
 			"failed to register controller\n");
-		dma_async_device_unregister(&mxs_dma->dma_device);
 	}
 
 	dev_info(mxs_dma->dma_device.dev, "initialized\n");
-- 
2.17.1


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

* [PATCH 35/46] dmaengine: mtk-hsdma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (33 preceding siblings ...)
  2018-08-03  7:20 ` [PATCH 34/46] dmaengine: mxs-dma: " Huang Shijie
@ 2018-08-03  7:20 ` Huang Shijie
  2018-08-03  7:20 ` [PATCH 36/46] dmaengine: k3dma: " Huang Shijie
                   ` (12 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:20 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/mediatek/mtk-hsdma.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/dma/mediatek/mtk-hsdma.c b/drivers/dma/mediatek/mtk-hsdma.c
index b7ec56ae02a6..a8b2e84e1556 100644
--- a/drivers/dma/mediatek/mtk-hsdma.c
+++ b/drivers/dma/mediatek/mtk-hsdma.c
@@ -977,7 +977,7 @@ static int mtk_hsdma_probe(struct platform_device *pdev)
 		INIT_LIST_HEAD(&vc->desc_hw_processing);
 	}
 
-	err = dma_async_device_register(dd);
+	err = dmaenginem_async_device_register(dd);
 	if (err)
 		return err;
 
@@ -1007,7 +1007,6 @@ static int mtk_hsdma_probe(struct platform_device *pdev)
 	return 0;
 
 err_unregister:
-	dma_async_device_unregister(dd);
 
 	return err;
 }
@@ -1035,7 +1034,6 @@ static int mtk_hsdma_remove(struct platform_device *pdev)
 	/* Disable hardware */
 	mtk_hsdma_hw_deinit(hsdma);
 
-	dma_async_device_unregister(&hsdma->ddev);
 	of_dma_controller_free(pdev->dev.of_node);
 
 	return 0;
-- 
2.17.1


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

* [PATCH 36/46] dmaengine: k3dma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (34 preceding siblings ...)
  2018-08-03  7:20 ` [PATCH 35/46] dmaengine: mtk-hsdma: " Huang Shijie
@ 2018-08-03  7:20 ` Huang Shijie
  2018-08-03  7:20 ` [PATCH 37/46] dmaengine: imx-sdma: " Huang Shijie
                   ` (11 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:20 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.
	remove label of_dma_register_fail

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/k3dma.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/dma/k3dma.c b/drivers/dma/k3dma.c
index 6bfa217ed6d0..5d9ab35b982d 100644
--- a/drivers/dma/k3dma.c
+++ b/drivers/dma/k3dma.c
@@ -902,14 +902,14 @@ static int k3_dma_probe(struct platform_device *op)
 
 	k3_dma_enable_dma(d, true);
 
-	ret = dma_async_device_register(&d->slave);
+	ret = dmaenginem_async_device_register(&d->slave);
 	if (ret)
 		goto dma_async_register_fail;
 
 	ret = of_dma_controller_register((&op->dev)->of_node,
 					k3_of_dma_simple_xlate, d);
 	if (ret)
-		goto of_dma_register_fail;
+		goto dma_async_register_fail;
 
 	spin_lock_init(&d->lock);
 	INIT_LIST_HEAD(&d->chan_pending);
@@ -919,8 +919,6 @@ static int k3_dma_probe(struct platform_device *op)
 
 	return 0;
 
-of_dma_register_fail:
-	dma_async_device_unregister(&d->slave);
 dma_async_register_fail:
 	clk_disable_unprepare(d->clk);
 	return ret;
@@ -931,7 +929,6 @@ static int k3_dma_remove(struct platform_device *op)
 	struct k3_dma_chan *c, *cn;
 	struct k3_dma_dev *d = platform_get_drvdata(op);
 
-	dma_async_device_unregister(&d->slave);
 	of_dma_controller_free((&op->dev)->of_node);
 
 	devm_free_irq(&op->dev, d->irq, d);
-- 
2.17.1


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

* [PATCH 37/46] dmaengine: imx-sdma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (35 preceding siblings ...)
  2018-08-03  7:20 ` [PATCH 36/46] dmaengine: k3dma: " Huang Shijie
@ 2018-08-03  7:20 ` Huang Shijie
  2018-08-03  7:20 ` [PATCH 38/46] dmaengine: imx-dma: " Huang Shijie
                   ` (10 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:20 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.
	remove label err_register

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/imx-sdma.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c
index b4ec2d20e661..3ee28d044e3c 100644
--- a/drivers/dma/imx-sdma.c
+++ b/drivers/dma/imx-sdma.c
@@ -2062,7 +2062,7 @@ static int sdma_probe(struct platform_device *pdev)
 
 	platform_set_drvdata(pdev, sdma);
 
-	ret = dma_async_device_register(&sdma->dma_device);
+	ret = dmaenginem_async_device_register(&sdma->dma_device);
 	if (ret) {
 		dev_err(&pdev->dev, "unable to register\n");
 		goto err_init;
@@ -2072,7 +2072,7 @@ static int sdma_probe(struct platform_device *pdev)
 		ret = of_dma_controller_register(np, sdma_xlate, sdma);
 		if (ret) {
 			dev_err(&pdev->dev, "failed to register controller\n");
-			goto err_register;
+			goto err_init;
 		}
 
 		spba_bus = of_find_compatible_node(NULL, NULL, "fsl,spba-bus");
@@ -2086,8 +2086,6 @@ static int sdma_probe(struct platform_device *pdev)
 
 	return 0;
 
-err_register:
-	dma_async_device_unregister(&sdma->dma_device);
 err_init:
 	kfree(sdma->script_addrs);
 err_irq:
@@ -2103,7 +2101,6 @@ static int sdma_remove(struct platform_device *pdev)
 	int i;
 
 	devm_free_irq(&pdev->dev, sdma->irq, sdma);
-	dma_async_device_unregister(&sdma->dma_device);
 	kfree(sdma->script_addrs);
 	clk_unprepare(sdma->clk_ahb);
 	clk_unprepare(sdma->clk_ipg);
-- 
2.17.1


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

* [PATCH 38/46] dmaengine: imx-dma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (36 preceding siblings ...)
  2018-08-03  7:20 ` [PATCH 37/46] dmaengine: imx-sdma: " Huang Shijie
@ 2018-08-03  7:20 ` Huang Shijie
  2018-08-03  7:20 ` [PATCH 39/46] dmaengine: img-mdc-dma: " Huang Shijie
                   ` (9 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:20 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.
	remove label err_of_dma_controller

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/imx-dma.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/dma/imx-dma.c b/drivers/dma/imx-dma.c
index 75b6ff0415ee..d651fbea77ee 100644
--- a/drivers/dma/imx-dma.c
+++ b/drivers/dma/imx-dma.c
@@ -1186,7 +1186,7 @@ static int __init imxdma_probe(struct platform_device *pdev)
 	imxdma->dma_device.dev->dma_parms = &imxdma->dma_parms;
 	dma_set_max_seg_size(imxdma->dma_device.dev, 0xffffff);
 
-	ret = dma_async_device_register(&imxdma->dma_device);
+	ret = dmaenginem_async_device_register(&imxdma->dma_device);
 	if (ret) {
 		dev_err(&pdev->dev, "unable to register\n");
 		goto disable_dma_ahb_clk;
@@ -1197,14 +1197,12 @@ static int __init imxdma_probe(struct platform_device *pdev)
 				imxdma_xlate, imxdma);
 		if (ret) {
 			dev_err(&pdev->dev, "unable to register of_dma_controller\n");
-			goto err_of_dma_controller;
+			goto disable_dma_ahb_clk;
 		}
 	}
 
 	return 0;
 
-err_of_dma_controller:
-	dma_async_device_unregister(&imxdma->dma_device);
 disable_dma_ahb_clk:
 	clk_disable_unprepare(imxdma->dma_ahb);
 disable_dma_ipg_clk:
@@ -1237,8 +1235,6 @@ static int imxdma_remove(struct platform_device *pdev)
 
 	imxdma_free_irq(pdev, imxdma);
 
-        dma_async_device_unregister(&imxdma->dma_device);
-
 	if (pdev->dev.of_node)
 		of_dma_controller_free(pdev->dev.of_node);
 
-- 
2.17.1


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

* [PATCH 39/46] dmaengine: img-mdc-dma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (37 preceding siblings ...)
  2018-08-03  7:20 ` [PATCH 38/46] dmaengine: imx-dma: " Huang Shijie
@ 2018-08-03  7:20 ` Huang Shijie
  2018-08-03  7:20 ` [PATCH 40/46] dmaengine: fsl-edma: " Huang Shijie
                   ` (8 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:20 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister
	remove label unregister

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/img-mdc-dma.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/dma/img-mdc-dma.c b/drivers/dma/img-mdc-dma.c
index 25cec9c243e1..1e555ac62b1e 100644
--- a/drivers/dma/img-mdc-dma.c
+++ b/drivers/dma/img-mdc-dma.c
@@ -1001,21 +1001,19 @@ static int mdc_dma_probe(struct platform_device *pdev)
 			return ret;
 	}
 
-	ret = dma_async_device_register(&mdma->dma_dev);
+	ret = dmaenginem_async_device_register(&mdma->dma_dev);
 	if (ret)
 		goto suspend;
 
 	ret = of_dma_controller_register(pdev->dev.of_node, mdc_of_xlate, mdma);
 	if (ret)
-		goto unregister;
+		goto suspend;
 
 	dev_info(&pdev->dev, "MDC with %u channels and %u threads\n",
 		 mdma->nr_channels, mdma->nr_threads);
 
 	return 0;
 
-unregister:
-	dma_async_device_unregister(&mdma->dma_dev);
 suspend:
 	if (!pm_runtime_enabled(&pdev->dev))
 		img_mdc_runtime_suspend(&pdev->dev);
@@ -1029,7 +1027,6 @@ static int mdc_dma_remove(struct platform_device *pdev)
 	struct mdc_chan *mchan, *next;
 
 	of_dma_controller_free(pdev->dev.of_node);
-	dma_async_device_unregister(&mdma->dma_dev);
 
 	list_for_each_entry_safe(mchan, next, &mdma->dma_dev.channels,
 				 vc.chan.device_node) {
-- 
2.17.1


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

* [PATCH 40/46] dmaengine: fsl-edma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (38 preceding siblings ...)
  2018-08-03  7:20 ` [PATCH 39/46] dmaengine: img-mdc-dma: " Huang Shijie
@ 2018-08-03  7:20 ` Huang Shijie
  2018-08-03  7:20 ` [PATCH 41/46] dmaengine: at_hdmac: " Huang Shijie
                   ` (7 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:20 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/fsl-edma.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/dma/fsl-edma.c b/drivers/dma/fsl-edma.c
index c7568869284e..f475efce1d60 100644
--- a/drivers/dma/fsl-edma.c
+++ b/drivers/dma/fsl-edma.c
@@ -972,7 +972,7 @@ static int fsl_edma_probe(struct platform_device *pdev)
 
 	platform_set_drvdata(pdev, fsl_edma);
 
-	ret = dma_async_device_register(&fsl_edma->dma_dev);
+	ret = dmaenginem_async_device_register(&fsl_edma->dma_dev);
 	if (ret) {
 		dev_err(&pdev->dev,
 			"Can't register Freescale eDMA engine. (%d)\n", ret);
@@ -984,7 +984,6 @@ static int fsl_edma_probe(struct platform_device *pdev)
 	if (ret) {
 		dev_err(&pdev->dev,
 			"Can't register Freescale eDMA of_dma. (%d)\n", ret);
-		dma_async_device_unregister(&fsl_edma->dma_dev);
 		fsl_disable_clocks(fsl_edma, DMAMUX_NR);
 		return ret;
 	}
@@ -1014,7 +1013,6 @@ static int fsl_edma_remove(struct platform_device *pdev)
 	fsl_edma_irq_exit(pdev, fsl_edma);
 	fsl_edma_cleanup_vchan(&fsl_edma->dma_dev);
 	of_dma_controller_free(np);
-	dma_async_device_unregister(&fsl_edma->dma_dev);
 	fsl_disable_clocks(fsl_edma, DMAMUX_NR);
 
 	return 0;
-- 
2.17.1


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

* [PATCH 41/46] dmaengine: at_hdmac: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (39 preceding siblings ...)
  2018-08-03  7:20 ` [PATCH 40/46] dmaengine: fsl-edma: " Huang Shijie
@ 2018-08-03  7:20 ` Huang Shijie
  2018-08-03  7:20 ` [PATCH 42/46] dmaengine: at_xdmac: " Huang Shijie
                   ` (6 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:20 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/at_hdmac.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
index 75f38d19fcbe..536146601238 100644
--- a/drivers/dma/at_hdmac.c
+++ b/drivers/dma/at_hdmac.c
@@ -1954,7 +1954,7 @@ static int __init at_dma_probe(struct platform_device *pdev)
 	  dma_has_cap(DMA_SLAVE, atdma->dma_common.cap_mask)  ? "slave " : "",
 	  plat_dat->nr_channels);
 
-	dma_async_device_register(&atdma->dma_common);
+	dmaenginem_async_device_register(&atdma->dma_common);
 
 	/*
 	 * Do not return an error if the dmac node is not present in order to
@@ -1973,7 +1973,6 @@ static int __init at_dma_probe(struct platform_device *pdev)
 	return 0;
 
 err_of_dma_controller_register:
-	dma_async_device_unregister(&atdma->dma_common);
 	dma_pool_destroy(atdma->memset_pool);
 err_memset_pool_create:
 	dma_pool_destroy(atdma->dma_desc_pool);
@@ -2000,7 +1999,6 @@ static int at_dma_remove(struct platform_device *pdev)
 	struct resource		*io;
 
 	at_dma_off(atdma);
-	dma_async_device_unregister(&atdma->dma_common);
 
 	dma_pool_destroy(atdma->memset_pool);
 	dma_pool_destroy(atdma->dma_desc_pool);
-- 
2.17.1


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

* [PATCH 42/46] dmaengine: at_xdmac: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (40 preceding siblings ...)
  2018-08-03  7:20 ` [PATCH 41/46] dmaengine: at_hdmac: " Huang Shijie
@ 2018-08-03  7:20 ` Huang Shijie
  2018-08-03  7:20 ` [PATCH 43/46] dmaengine: dma-jz4780: " Huang Shijie
                   ` (5 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:20 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.
	remove label err_dma_unregister

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/at_xdmac.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/dma/at_xdmac.c b/drivers/dma/at_xdmac.c
index 4bf72561667c..c220f667be80 100644
--- a/drivers/dma/at_xdmac.c
+++ b/drivers/dma/at_xdmac.c
@@ -2041,7 +2041,7 @@ static int at_xdmac_probe(struct platform_device *pdev)
 	}
 	platform_set_drvdata(pdev, atxdmac);
 
-	ret = dma_async_device_register(&atxdmac->dma);
+	ret = dmaenginem_async_device_register(&atxdmac->dma);
 	if (ret) {
 		dev_err(&pdev->dev, "fail to register DMA engine device\n");
 		goto err_clk_disable;
@@ -2051,7 +2051,7 @@ static int at_xdmac_probe(struct platform_device *pdev)
 					 at_xdmac_xlate, atxdmac);
 	if (ret) {
 		dev_err(&pdev->dev, "could not register of dma controller\n");
-		goto err_dma_unregister;
+		goto err_clk_disable;
 	}
 
 	dev_info(&pdev->dev, "%d channels, mapped at 0x%p\n",
@@ -2059,8 +2059,6 @@ static int at_xdmac_probe(struct platform_device *pdev)
 
 	return 0;
 
-err_dma_unregister:
-	dma_async_device_unregister(&atxdmac->dma);
 err_clk_disable:
 	clk_disable_unprepare(atxdmac->clk);
 err_free_irq:
@@ -2075,7 +2073,6 @@ static int at_xdmac_remove(struct platform_device *pdev)
 
 	at_xdmac_off(atxdmac);
 	of_dma_controller_free(pdev->dev.of_node);
-	dma_async_device_unregister(&atxdmac->dma);
 	clk_disable_unprepare(atxdmac->clk);
 
 	free_irq(atxdmac->irq, atxdmac);
-- 
2.17.1


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

* [PATCH 43/46] dmaengine: dma-jz4780: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (41 preceding siblings ...)
  2018-08-03  7:20 ` [PATCH 42/46] dmaengine: at_xdmac: " Huang Shijie
@ 2018-08-03  7:20 ` Huang Shijie
  2018-08-03  7:20 ` [PATCH 44/46] dmaengine: dma-jz4740: " Huang Shijie
                   ` (4 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:20 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.
	remove label err_unregister_dev

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/dma-jz4780.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/dma/dma-jz4780.c b/drivers/dma/dma-jz4780.c
index 85820a2d69d4..b2a244902bc5 100644
--- a/drivers/dma/dma-jz4780.c
+++ b/drivers/dma/dma-jz4780.c
@@ -847,7 +847,7 @@ static int jz4780_dma_probe(struct platform_device *pdev)
 		jzchan->vchan.desc_free = jz4780_dma_desc_free;
 	}
 
-	ret = dma_async_device_register(dd);
+	ret = dmaenginem_async_device_register(dd);
 	if (ret) {
 		dev_err(dev, "failed to register device\n");
 		goto err_disable_clk;
@@ -858,15 +858,12 @@ static int jz4780_dma_probe(struct platform_device *pdev)
 					 jzdma);
 	if (ret) {
 		dev_err(dev, "failed to register OF DMA controller\n");
-		goto err_unregister_dev;
+		goto err_disable_clk;
 	}
 
 	dev_info(dev, "JZ4780 DMA controller initialised\n");
 	return 0;
 
-err_unregister_dev:
-	dma_async_device_unregister(dd);
-
 err_disable_clk:
 	clk_disable_unprepare(jzdma->clk);
 
@@ -887,7 +884,6 @@ static int jz4780_dma_remove(struct platform_device *pdev)
 	for (i = 0; i < JZ_DMA_NR_CHANNELS; i++)
 		tasklet_kill(&jzdma->chan[i].vchan.task);
 
-	dma_async_device_unregister(&jzdma->dma_device);
 	return 0;
 }
 
-- 
2.17.1


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

* [PATCH 44/46] dmaengine: dma-jz4740: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (42 preceding siblings ...)
  2018-08-03  7:20 ` [PATCH 43/46] dmaengine: dma-jz4780: " Huang Shijie
@ 2018-08-03  7:20 ` Huang Shijie
  2018-08-03  7:20 ` [PATCH 45/46] dmaengine: dma-axi-dmac: " Huang Shijie
                   ` (3 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:20 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.
	remove label err_unregister

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/dma-jz4740.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/dma/dma-jz4740.c b/drivers/dma/dma-jz4740.c
index afd5e10f8927..30513a16e344 100644
--- a/drivers/dma/dma-jz4740.c
+++ b/drivers/dma/dma-jz4740.c
@@ -553,21 +553,19 @@ static int jz4740_dma_probe(struct platform_device *pdev)
 		vchan_init(&chan->vchan, dd);
 	}
 
-	ret = dma_async_device_register(dd);
+	ret = dmaenginem_async_device_register(dd);
 	if (ret)
 		goto err_clk;
 
 	irq = platform_get_irq(pdev, 0);
 	ret = request_irq(irq, jz4740_dma_irq, 0, dev_name(&pdev->dev), dmadev);
 	if (ret)
-		goto err_unregister;
+		goto err_clk;
 
 	platform_set_drvdata(pdev, dmadev);
 
 	return 0;
 
-err_unregister:
-	dma_async_device_unregister(dd);
 err_clk:
 	clk_disable_unprepare(dmadev->clk);
 	return ret;
@@ -593,7 +591,6 @@ static int jz4740_dma_remove(struct platform_device *pdev)
 	free_irq(irq, dmadev);
 
 	jz4740_cleanup_vchan(&dmadev->ddev);
-	dma_async_device_unregister(&dmadev->ddev);
 	clk_disable_unprepare(dmadev->clk);
 
 	return 0;
-- 
2.17.1


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

* [PATCH 45/46] dmaengine: dma-axi-dmac: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (43 preceding siblings ...)
  2018-08-03  7:20 ` [PATCH 44/46] dmaengine: dma-jz4740: " Huang Shijie
@ 2018-08-03  7:20 ` Huang Shijie
  2018-08-03  7:20 ` [PATCH 46/46] dmaengine: add COMPILE_TEST for the drivers Huang Shijie
                   ` (2 subsequent siblings)
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:20 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

Use dmaenginem_async_device_register to simplify the code:
	remove dma_async_device_unregister.
	remove label err_unregister_device

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/dma-axi-dmac.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/dma/dma-axi-dmac.c b/drivers/dma/dma-axi-dmac.c
index 15b2453d2647..d510184762e6 100644
--- a/drivers/dma/dma-axi-dmac.c
+++ b/drivers/dma/dma-axi-dmac.c
@@ -678,14 +678,14 @@ static int axi_dmac_probe(struct platform_device *pdev)
 
 	axi_dmac_write(dmac, AXI_DMAC_REG_IRQ_MASK, 0x00);
 
-	ret = dma_async_device_register(dma_dev);
+	ret = dmaenginem_async_device_register(dma_dev);
 	if (ret)
 		goto err_clk_disable;
 
 	ret = of_dma_controller_register(pdev->dev.of_node,
 		of_dma_xlate_by_chan_id, dma_dev);
 	if (ret)
-		goto err_unregister_device;
+		goto err_clk_disable;
 
 	ret = request_irq(dmac->irq, axi_dmac_interrupt_handler, IRQF_SHARED,
 		dev_name(&pdev->dev), dmac);
@@ -698,8 +698,6 @@ static int axi_dmac_probe(struct platform_device *pdev)
 
 err_unregister_of:
 	of_dma_controller_free(pdev->dev.of_node);
-err_unregister_device:
-	dma_async_device_unregister(&dmac->dma_dev);
 err_clk_disable:
 	clk_disable_unprepare(dmac->clk);
 
@@ -713,7 +711,6 @@ static int axi_dmac_remove(struct platform_device *pdev)
 	of_dma_controller_free(pdev->dev.of_node);
 	free_irq(dmac->irq, dmac);
 	tasklet_kill(&dmac->chan.vchan.task);
-	dma_async_device_unregister(&dmac->dma_dev);
 	clk_disable_unprepare(dmac->clk);
 
 	return 0;
-- 
2.17.1


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

* [PATCH 46/46] dmaengine: add COMPILE_TEST for the drivers
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (44 preceding siblings ...)
  2018-08-03  7:20 ` [PATCH 45/46] dmaengine: dma-axi-dmac: " Huang Shijie
@ 2018-08-03  7:20 ` Huang Shijie
  2018-08-03  7:51 ` [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Lars-Peter Clausen
  2018-08-03  8:20 ` Peter Ujfalusi
  47 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:20 UTC (permalink / raw)
  To: vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown, Huang Shijie

We can do the compiling test with COMPILE_TEST.
Thisi patch adds the COMPILE_TEST for the drivers.

Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
---
 drivers/dma/Kconfig    | 24 ++++++++++++------------
 drivers/dma/ti/Kconfig |  2 +-
 2 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig
index d4a4230a7942..7670b2f967c4 100644
--- a/drivers/dma/Kconfig
+++ b/drivers/dma/Kconfig
@@ -85,14 +85,14 @@ config AMCC_PPC440SPE_ADMA
 
 config AT_HDMAC
 	tristate "Atmel AHB DMA support"
-	depends on ARCH_AT91
+	depends on ARCH_AT91 || COMPILE_TEST
 	select DMA_ENGINE
 	help
 	  Support the Atmel AHB DMA controller.
 
 config AT_XDMAC
 	tristate "Atmel XDMA support"
-	depends on ARCH_AT91
+	depends on ARCH_AT91 || COMPILE_TEST
 	select DMA_ENGINE
 	help
 	  Support the Atmel XDMA controller.
@@ -163,7 +163,7 @@ config DMA_SA11X0
 
 config DMA_SUN4I
 	tristate "Allwinner A10 DMA SoCs support"
-	depends on MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
+	depends on MACH_SUN4I || MACH_SUN5I || MACH_SUN7I || COMPILE_TEST
 	default (MACH_SUN4I || MACH_SUN5I || MACH_SUN7I)
 	select DMA_ENGINE
 	select DMA_VIRTUAL_CHANNELS
@@ -240,7 +240,7 @@ config IMG_MDC_DMA
 
 config IMX_DMA
 	tristate "i.MX DMA support"
-	depends on ARCH_MXC
+	depends on ARCH_MXC || COMPILE_TEST
 	select DMA_ENGINE
 	help
 	  Support the i.MX DMA engine. This engine is integrated into
@@ -248,7 +248,7 @@ config IMX_DMA
 
 config IMX_SDMA
 	tristate "i.MX SDMA support"
-	depends on ARCH_MXC
+	depends on ARCH_MXC || COMPILE_TEST
 	select DMA_ENGINE
 	select DMA_VIRTUAL_CHANNELS
 	help
@@ -341,7 +341,7 @@ config MMP_TDMA
 
 config MOXART_DMA
 	tristate "MOXART DMA support"
-	depends on ARCH_MOXART
+	depends on ARCH_MOXART || COMPILE_TEST
 	select DMA_ENGINE
 	select DMA_VIRTUAL_CHANNELS
 	help
@@ -439,7 +439,7 @@ config PL330_DMA
 
 config PXA_DMA
 	bool "PXA DMA support"
-	depends on (ARCH_MMP || ARCH_PXA)
+	depends on (ARCH_MMP || ARCH_PXA || COMPILE_TEST)
 	select DMA_ENGINE
 	select DMA_VIRTUAL_CHANNELS
 	help
@@ -450,14 +450,14 @@ config PXA_DMA
 
 config SIRF_DMA
 	tristate "CSR SiRFprimaII/SiRFmarco DMA support"
-	depends on ARCH_SIRF
+	depends on ARCH_SIRF || COMPILE_TEST
 	select DMA_ENGINE
 	help
 	  Enable support for the CSR SiRFprimaII DMA engine.
 
 config STE_DMA40
 	bool "ST-Ericsson DMA40 support"
-	depends on ARCH_U8500
+	depends on ARCH_U8500 || COMPILE_TEST
 	select DMA_ENGINE
 	help
 	  Support for ST-Ericsson DMA40 controller
@@ -538,7 +538,7 @@ config TXX9_DMAC
 
 config TEGRA20_APB_DMA
 	bool "NVIDIA Tegra20 APB DMA support"
-	depends on ARCH_TEGRA
+	depends on ARCH_TEGRA || COMPILE_TEST
 	select DMA_ENGINE
 	help
 	  Support for the NVIDIA Tegra20 APB DMA controller driver. The
@@ -579,7 +579,7 @@ config XGENE_DMA
 
 config XILINX_DMA
 	tristate "Xilinx AXI DMAS Engine"
-	depends on (ARCH_ZYNQ || MICROBLAZE || ARM64)
+	depends on (ARCH_ZYNQ || MICROBLAZE || ARM64 || COMPILE_TEST)
 	select DMA_ENGINE
 	help
 	  Enable support for Xilinx AXI VDMA Soft IP.
@@ -598,7 +598,7 @@ config XILINX_DMA
 
 config XILINX_ZYNQMP_DMA
 	tristate "Xilinx ZynqMP DMA Engine"
-	depends on (ARCH_ZYNQ || MICROBLAZE || ARM64)
+	depends on (ARCH_ZYNQ || MICROBLAZE || ARM64 || COMPILE_TEST)
 	select DMA_ENGINE
 	help
 	  Enable support for Xilinx ZynqMP DMA controller.
diff --git a/drivers/dma/ti/Kconfig b/drivers/dma/ti/Kconfig
index e5e74e1361dc..a494789c5b87 100644
--- a/drivers/dma/ti/Kconfig
+++ b/drivers/dma/ti/Kconfig
@@ -4,7 +4,7 @@
 
 config TI_CPPI41
 	tristate "Texas Instruments CPPI 4.1 DMA support"
-	depends on (ARCH_OMAP || ARCH_DAVINCI_DA8XX)
+	depends on (ARCH_OMAP || ARCH_DAVINCI_DA8XX || COMPILE_TEST)
 	select DMA_ENGINE
 	help
 	  The Communications Port Programming Interface (CPPI) 4.1 DMA engine
-- 
2.17.1


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

* Re: [PATCH 07/46] dmaengine: omap-dma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 ` [PATCH 07/46] dmaengine: omap-dma: " Huang Shijie
@ 2018-08-03  7:47   ` Peter Ujfalusi
  2018-08-03  7:52     ` Huang Shijie
  2018-08-09  2:36     ` Vinod
  0 siblings, 2 replies; 64+ messages in thread
From: Peter Ujfalusi @ 2018-08-03  7:47 UTC (permalink / raw)
  To: Huang Shijie, vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, keescook, horms+renesas,
	geert+renesas, shawnguo, baoyou.xie, michal.simek, baohua,
	ludovic.desroches, linus.walleij, david.brown



On 2018-08-03 10:19, Huang Shijie wrote:
> Use dmaenginem_async_device_register to simplify the code:
>    remove dma_async_device_unregister
> 
> Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
> ---
>  drivers/dma/ti/omap-dma.c | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
> 
> diff --git a/drivers/dma/ti/omap-dma.c b/drivers/dma/ti/omap-dma.c
> index a4a931ddf6f6..085748c6eb67 100644
> --- a/drivers/dma/ti/omap-dma.c
> +++ b/drivers/dma/ti/omap-dma.c
> @@ -1566,7 +1566,7 @@ static int omap_dma_probe(struct platform_device *pdev)
>  		}
>  	}
>  
> -	rc = dma_async_device_register(&od->ddev);
> +	rc = dmaenginem_async_device_register(&od->ddev);

Why it is dmaenginem_async_device_register() and not aligned other
resource managed functions (devm_* dmam_*), like
devm_dma_async_device_register()

and in dmaenginem_async_device_register() what is the 'm' in dmaenginem ?
DMAengine Managed?

>  	if (rc) {
>  		pr_warn("OMAP-DMA: failed to register slave DMA engine device: %d\n",
>  			rc);
> @@ -1584,7 +1584,6 @@ static int omap_dma_probe(struct platform_device *pdev)
>  				of_dma_simple_xlate, &omap_dma_info);
>  		if (rc) {
>  			pr_warn("OMAP-DMA: failed to register DMA controller\n");
> -			dma_async_device_unregister(&od->ddev);
>  			omap_dma_free(od);
>  		}
>  	}
> @@ -1606,8 +1605,6 @@ static int omap_dma_remove(struct platform_device *pdev)
>  	irq = platform_get_irq(pdev, 1);
>  	devm_free_irq(&pdev->dev, irq, od);
>  
> -	dma_async_device_unregister(&od->ddev);
> -

I think this is a bad idea in general.
We need to unregister the dma-device before we clean up and free resources.

>  	if (!od->legacy) {
>  		/* Disable all interrupts */
>  		omap_dma_glbl_write(od, IRQENABLE_L0, 0);
> 

I'm sorry to say, but it is a NACK from me.

- Péter

Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

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

* Re: [PATCH 08/46] dmaengine: edma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 ` [PATCH 08/46] dmaengine: edma: " Huang Shijie
@ 2018-08-03  7:50   ` Peter Ujfalusi
  2018-08-03  7:54     ` Huang Shijie
  0 siblings, 1 reply; 64+ messages in thread
From: Peter Ujfalusi @ 2018-08-03  7:50 UTC (permalink / raw)
  To: Huang Shijie, vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, keescook, horms+renesas,
	geert+renesas, shawnguo, baoyou.xie, michal.simek, baohua,
	ludovic.desroches, linus.walleij, david.brown



On 2018-08-03 10:19, Huang Shijie wrote:
> Use dmaenginem_async_device_register to simplify the code:
>    remove dma_async_device_unregister
> 
> Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
> ---
>  drivers/dma/ti/edma.c | 8 ++------
>  1 file changed, 2 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/dma/ti/edma.c b/drivers/dma/ti/edma.c
> index ceabdea40ae0..28ba1e722c47 100644
> --- a/drivers/dma/ti/edma.c
> +++ b/drivers/dma/ti/edma.c
> @@ -2388,18 +2388,17 @@ static int edma_probe(struct platform_device *pdev)
>  	ecc->dma_slave.filter.mapcnt = info->slavecnt;
>  	ecc->dma_slave.filter.fn = edma_filter_fn;
>  
> -	ret = dma_async_device_register(&ecc->dma_slave);
> +	ret = dmaenginem_async_device_register(&ecc->dma_slave);
>  	if (ret) {
>  		dev_err(dev, "slave ddev registration failed (%d)\n", ret);
>  		goto err_reg1;
>  	}
>  
>  	if (ecc->dma_memcpy) {
> -		ret = dma_async_device_register(ecc->dma_memcpy);
> +		ret = dmaenginem_async_device_register(ecc->dma_memcpy);
>  		if (ret) {
>  			dev_err(dev, "memcpy ddev registration failed (%d)\n",
>  				ret);
> -			dma_async_device_unregister(&ecc->dma_slave);
>  			goto err_reg1;
>  		}
>  	}
> @@ -2439,9 +2438,6 @@ static int edma_remove(struct platform_device *pdev)
>  
>  	if (dev->of_node)
>  		of_dma_controller_free(dev->of_node);
> -	dma_async_device_unregister(&ecc->dma_slave);
> -	if (ecc->dma_memcpy)
> -		dma_async_device_unregister(ecc->dma_memcpy);

I'm afraid this is not safe either, we need to free the dummy_slot
_after_ the dma device is unregistered.

>  	edma_free_slot(ecc, ecc->dummy_slot);
>  
>  	return 0;
> 

- Péter

Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

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

* Re: [PATCH 00/46] Use dmaenginem_async_device_register to simplify code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (45 preceding siblings ...)
  2018-08-03  7:20 ` [PATCH 46/46] dmaengine: add COMPILE_TEST for the drivers Huang Shijie
@ 2018-08-03  7:51 ` Lars-Peter Clausen
  2018-08-03  7:59   ` Huang Shijie
  2018-08-03  8:20 ` Peter Ujfalusi
  47 siblings, 1 reply; 64+ messages in thread
From: Lars-Peter Clausen @ 2018-08-03  7:51 UTC (permalink / raw)
  To: Huang Shijie, vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown

On 08/03/2018 09:19 AM, Huang Shijie wrote:
> All the patches are using dmaenginem_async_device_register to simplify code
> except the last one:
>   dmaengine: add COMPILE_TEST for the drivers
> 
> I use the last one to do the compiler test.  
> There are still 20 drivers which do not use the dmaenginem_async_device_register.
> Let me take a rest, if this patch set is accepted, I will do the rest.

Lots of race conditions in this series. The DMA device needs to be removed
before any of the resources it uses are disabled/released.

As a rule of thumb you can only convert something to a managed
allocation/reregistration if it is the last action in remove.

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

* Re: [PATCH 07/46] dmaengine: omap-dma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:47   ` Peter Ujfalusi
@ 2018-08-03  7:52     ` Huang Shijie
  2018-08-09  2:36     ` Vinod
  1 sibling, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:52 UTC (permalink / raw)
  To: Peter Ujfalusi
  Cc: vkoul, dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, keescook, horms+renesas,
	geert+renesas, shawnguo, baoyou.xie, michal.simek, baohua,
	ludovic.desroches, linus.walleij, david.brown

On Fri, Aug 03, 2018 at 10:47:30AM +0300, Peter Ujfalusi wrote:
> 
> 
> On 2018-08-03 10:19, Huang Shijie wrote:
> > Use dmaenginem_async_device_register to simplify the code:
> >    remove dma_async_device_unregister
> > 
> > Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
> > ---
> >  drivers/dma/ti/omap-dma.c | 5 +----
> >  1 file changed, 1 insertion(+), 4 deletions(-)
> > 
> > diff --git a/drivers/dma/ti/omap-dma.c b/drivers/dma/ti/omap-dma.c
> > index a4a931ddf6f6..085748c6eb67 100644
> > --- a/drivers/dma/ti/omap-dma.c
> > +++ b/drivers/dma/ti/omap-dma.c
> > @@ -1566,7 +1566,7 @@ static int omap_dma_probe(struct platform_device *pdev)
> >  		}
> >  	}
> >  
> > -	rc = dma_async_device_register(&od->ddev);
> > +	rc = dmaenginem_async_device_register(&od->ddev);
> 
> Why it is dmaenginem_async_device_register() and not aligned other
> resource managed functions (devm_* dmam_*), like
> devm_dma_async_device_register()
Vinod prefer the this dmaenginem_async_device_register..	
> 
> and in dmaenginem_async_device_register() what is the 'm' in dmaenginem ?
> DMAengine Managed?
Yes.
> 
> >  	if (rc) {
> >  		pr_warn("OMAP-DMA: failed to register slave DMA engine device: %d\n",
> >  			rc);
> > @@ -1584,7 +1584,6 @@ static int omap_dma_probe(struct platform_device *pdev)
> >  				of_dma_simple_xlate, &omap_dma_info);
> >  		if (rc) {
> >  			pr_warn("OMAP-DMA: failed to register DMA controller\n");
> > -			dma_async_device_unregister(&od->ddev);
> >  			omap_dma_free(od);
> >  		}
> >  	}
> > @@ -1606,8 +1605,6 @@ static int omap_dma_remove(struct platform_device *pdev)
> >  	irq = platform_get_irq(pdev, 1);
> >  	devm_free_irq(&pdev->dev, irq, od);
> >  
> > -	dma_async_device_unregister(&od->ddev);
> > -
> 
> I think this is a bad idea in general.
> We need to unregister the dma-device before we clean up and free resources.
okay, thanks for pointing here.
We can drop this patch now...

> 
> >  	if (!od->legacy) {
> >  		/* Disable all interrupts */
> >  		omap_dma_glbl_write(od, IRQENABLE_L0, 0);
> > 
> 
> I'm sorry to say, but it is a NACK from me.
No problem.

Thanks
Huang Shijie

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

* Re: [PATCH 08/46] dmaengine: edma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:50   ` Peter Ujfalusi
@ 2018-08-03  7:54     ` Huang Shijie
  0 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:54 UTC (permalink / raw)
  To: Peter Ujfalusi
  Cc: vkoul, dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, keescook, horms+renesas,
	geert+renesas, shawnguo, baoyou.xie, michal.simek, baohua,
	ludovic.desroches, linus.walleij, david.brown

On Fri, Aug 03, 2018 at 10:50:13AM +0300, Peter Ujfalusi wrote:
> 
> 
> On 2018-08-03 10:19, Huang Shijie wrote:
> > Use dmaenginem_async_device_register to simplify the code:
> >    remove dma_async_device_unregister
> > 
> > Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
> > ---
> >  drivers/dma/ti/edma.c | 8 ++------
> >  1 file changed, 2 insertions(+), 6 deletions(-)
> > 
> > diff --git a/drivers/dma/ti/edma.c b/drivers/dma/ti/edma.c
> > index ceabdea40ae0..28ba1e722c47 100644
> > --- a/drivers/dma/ti/edma.c
> > +++ b/drivers/dma/ti/edma.c
> > @@ -2388,18 +2388,17 @@ static int edma_probe(struct platform_device *pdev)
> >  	ecc->dma_slave.filter.mapcnt = info->slavecnt;
> >  	ecc->dma_slave.filter.fn = edma_filter_fn;
> >  
> > -	ret = dma_async_device_register(&ecc->dma_slave);
> > +	ret = dmaenginem_async_device_register(&ecc->dma_slave);
> >  	if (ret) {
> >  		dev_err(dev, "slave ddev registration failed (%d)\n", ret);
> >  		goto err_reg1;
> >  	}
> >  
> >  	if (ecc->dma_memcpy) {
> > -		ret = dma_async_device_register(ecc->dma_memcpy);
> > +		ret = dmaenginem_async_device_register(ecc->dma_memcpy);
> >  		if (ret) {
> >  			dev_err(dev, "memcpy ddev registration failed (%d)\n",
> >  				ret);
> > -			dma_async_device_unregister(&ecc->dma_slave);
> >  			goto err_reg1;
> >  		}
> >  	}
> > @@ -2439,9 +2438,6 @@ static int edma_remove(struct platform_device *pdev)
> >  
> >  	if (dev->of_node)
> >  		of_dma_controller_free(dev->of_node);
> > -	dma_async_device_unregister(&ecc->dma_slave);
> > -	if (ecc->dma_memcpy)
> > -		dma_async_device_unregister(ecc->dma_memcpy);
> 
> I'm afraid this is not safe either, we need to free the dummy_slot
> _after_ the dma device is unregistered.
> 
Thanks for pointing this.

I will drop this patch ...

Thanks
Huang Shijie

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

* Re: [PATCH 09/46] dmaengine: cppi41: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 ` [PATCH 09/46] dmaengine: cppi41: " Huang Shijie
@ 2018-08-03  7:55   ` Peter Ujfalusi
  2018-08-03  8:02     ` Huang Shijie
  2018-08-06  3:28     ` Huang Shijie
  0 siblings, 2 replies; 64+ messages in thread
From: Peter Ujfalusi @ 2018-08-03  7:55 UTC (permalink / raw)
  To: Huang Shijie, vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, keescook, horms+renesas,
	geert+renesas, shawnguo, baoyou.xie, michal.simek, baohua,
	ludovic.desroches, linus.walleij, david.brown



On 2018-08-03 10:19, Huang Shijie wrote:
> Use dmaenginem_async_device_register to simplify the code:
>    remove dma_async_device_unregister
> 
> Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
> ---
>  drivers/dma/ti/cppi41.c | 7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/dma/ti/cppi41.c b/drivers/dma/ti/cppi41.c
> index 1497da367710..d2998a19ed2e 100644
> --- a/drivers/dma/ti/cppi41.c
> +++ b/drivers/dma/ti/cppi41.c
> @@ -1096,21 +1096,19 @@ static int cppi41_dma_probe(struct platform_device *pdev)
>  		goto err_chans;
>  	cdd->irq = irq;
>  
> -	ret = dma_async_device_register(&cdd->ddev);
> +	ret = dmaenginem_async_device_register(&cdd->ddev);
>  	if (ret)
>  		goto err_chans;
>  
>  	ret = of_dma_controller_register(dev->of_node,
>  			cppi41_dma_xlate, &cpp41_dma_info);
>  	if (ret)
> -		goto err_of;
> +		goto err_chans;
>  
>  	pm_runtime_mark_last_busy(dev);
>  	pm_runtime_put_autosuspend(dev);
>  
>  	return 0;
> -err_of:
> -	dma_async_device_unregister(&cdd->ddev);
>  err_chans:
>  	deinit_cppi41(dev, cdd);
>  err_init_cppi:
> @@ -1132,7 +1130,6 @@ static int cppi41_dma_remove(struct platform_device *pdev)
>  		dev_err(&pdev->dev, "%s could not pm_runtime_get: %i\n",
>  			__func__, error);
>  	of_dma_controller_free(pdev->dev.of_node);
> -	dma_async_device_unregister(&cdd->ddev);

If I read the code right then this is not safe.
We would have deinitalized cppi41 driver which is not functional, but we
will still have the dma device registered and if a channel is requested
we will have kernel crash.

It falls in the same case as omap-dma, edma.

>  
>  	devm_free_irq(&pdev->dev, cdd->irq, cdd);
>  	deinit_cppi41(&pdev->dev, cdd);
> 

- Péter

Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

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

* Re: [PATCH 00/46] Use dmaenginem_async_device_register to simplify code
  2018-08-03  7:51 ` [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Lars-Peter Clausen
@ 2018-08-03  7:59   ` Huang Shijie
  0 siblings, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  7:59 UTC (permalink / raw)
  To: Lars-Peter Clausen
  Cc: vkoul, dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown

On Fri, Aug 03, 2018 at 09:51:43AM +0200, Lars-Peter Clausen wrote:
> On 08/03/2018 09:19 AM, Huang Shijie wrote:
> > All the patches are using dmaenginem_async_device_register to simplify code
> > except the last one:
> >   dmaengine: add COMPILE_TEST for the drivers
> > 
> > I use the last one to do the compiler test.  
> > There are still 20 drivers which do not use the dmaenginem_async_device_register.
> > Let me take a rest, if this patch set is accepted, I will do the rest.
> 
> Lots of race conditions in this series. The DMA device needs to be removed
> before any of the resources it uses are disabled/released.
> 
> As a rule of thumb you can only convert something to a managed
> allocation/reregistration if it is the last action in remove.
Yes. Agree.

I am collecting the DMA maintainers opinions now..
If the managed unregistration is not the last action, we can drop the patch.

Thanks
Huang Shijie


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

* Re: [PATCH 09/46] dmaengine: cppi41: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:55   ` Peter Ujfalusi
@ 2018-08-03  8:02     ` Huang Shijie
  2018-08-06  3:28     ` Huang Shijie
  1 sibling, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  8:02 UTC (permalink / raw)
  To: Peter Ujfalusi, vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, keescook, horms+renesas,
	geert+renesas, shawnguo, baoyou.xie, michal.simek, baohua,
	ludovic.desroches, linus.walleij, david.brown



在 2018年08月03日 15:55, Peter Ujfalusi 写道:
>
> On 2018-08-03 10:19, Huang Shijie wrote:
>> Use dmaenginem_async_device_register to simplify the code:
>>     remove dma_async_device_unregister
>>
>> Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
>> ---
>>   drivers/dma/ti/cppi41.c | 7 ++-----
>>   1 file changed, 2 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/dma/ti/cppi41.c b/drivers/dma/ti/cppi41.c
>> index 1497da367710..d2998a19ed2e 100644
>> --- a/drivers/dma/ti/cppi41.c
>> +++ b/drivers/dma/ti/cppi41.c
>> @@ -1096,21 +1096,19 @@ static int cppi41_dma_probe(struct platform_device *pdev)
>>   		goto err_chans;
>>   	cdd->irq = irq;
>>   
>> -	ret = dma_async_device_register(&cdd->ddev);
>> +	ret = dmaenginem_async_device_register(&cdd->ddev);
>>   	if (ret)
>>   		goto err_chans;
>>   
>>   	ret = of_dma_controller_register(dev->of_node,
>>   			cppi41_dma_xlate, &cpp41_dma_info);
>>   	if (ret)
>> -		goto err_of;
>> +		goto err_chans;
>>   
>>   	pm_runtime_mark_last_busy(dev);
>>   	pm_runtime_put_autosuspend(dev);
>>   
>>   	return 0;
>> -err_of:
>> -	dma_async_device_unregister(&cdd->ddev);
>>   err_chans:
>>   	deinit_cppi41(dev, cdd);
>>   err_init_cppi:
>> @@ -1132,7 +1130,6 @@ static int cppi41_dma_remove(struct platform_device *pdev)
>>   		dev_err(&pdev->dev, "%s could not pm_runtime_get: %i\n",
>>   			__func__, error);
>>   	of_dma_controller_free(pdev->dev.of_node);
>> -	dma_async_device_unregister(&cdd->ddev);
> If I read the code right then this is not safe.
> We would have deinitalized cppi41 driver which is not functional, but we
> will still have the dma device registered and if a channel is requested
> we will have kernel crash.
>
> It falls in the same case as omap-dma, edma.
Thanks for pointing this, we can drop the patches for omap-dma, edma.

Huang Shijie


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

* Re: [PATCH 17/46] dmaengine: stm32-mdma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:19 ` [PATCH 17/46] dmaengine: stm32-mdma: " Huang Shijie
@ 2018-08-03  8:10   ` Pierre Yves MORDRET
  0 siblings, 0 replies; 64+ messages in thread
From: Pierre Yves MORDRET @ 2018-08-03  8:10 UTC (permalink / raw)
  To: Huang Shijie, vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, peter.ujfalusi,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown

Acked-by: Pierre-Yves MORDRET <pierre-yves.mordret@st.com>

On 08/03/2018 09:19 AM, Huang Shijie wrote:
> Use dmaenginem_async_device_register to simplify the code:
> 	remove dma_async_device_unregister.
> 
> Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
> ---
>  drivers/dma/stm32-mdma.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/drivers/dma/stm32-mdma.c b/drivers/dma/stm32-mdma.c
> index 06dd1725375e..390e4cae0e1a 100644
> --- a/drivers/dma/stm32-mdma.c
> +++ b/drivers/dma/stm32-mdma.c
> @@ -1656,7 +1656,7 @@ static int stm32_mdma_probe(struct platform_device *pdev)
>  		return ret;
>  	}
>  
> -	ret = dma_async_device_register(dd);
> +	ret = dmaenginem_async_device_register(dd);
>  	if (ret)
>  		return ret;
>  
> @@ -1674,8 +1674,6 @@ static int stm32_mdma_probe(struct platform_device *pdev)
>  	return 0;
>  
>  err_unregister:
> -	dma_async_device_unregister(dd);
> -
>  	return ret;
>  }
>  
> 

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

* Re: [PATCH 00/46] Use dmaenginem_async_device_register to simplify code
  2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
                   ` (46 preceding siblings ...)
  2018-08-03  7:51 ` [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Lars-Peter Clausen
@ 2018-08-03  8:20 ` Peter Ujfalusi
  2018-08-03  8:48   ` Huang Shijie
  2018-08-05  1:03   ` Huang Shijie
  47 siblings, 2 replies; 64+ messages in thread
From: Peter Ujfalusi @ 2018-08-03  8:20 UTC (permalink / raw)
  To: Huang Shijie, vkoul
  Cc: dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, keescook, horms+renesas,
	geert+renesas, shawnguo, baoyou.xie, michal.simek, baohua,
	ludovic.desroches, linus.walleij, david.brown

Hi,

On 2018-08-03 10:19, Huang Shijie wrote:
> All the patches are using dmaenginem_async_device_register to simplify code
> except the last one:
>   dmaengine: add COMPILE_TEST for the drivers
> 
> I use the last one to do the compiler test.  
> There are still 20 drivers which do not use the dmaenginem_async_device_register.
> Let me take a rest, if this patch set is accepted, I will do the rest.

I think for most of the drivers this series is going to open a race
which is essentially:

prior:
_remove()
{
...
	dma_async_device_register()
	/* Free resources, disable HW, etc */
	return 0;
}

after:
_remove()
{
...
	/* Free resources, disable HW, etc */
	/*
	 * The dma device is still registered and a channel can be
	 * requested
	 */

	dma_async_device_register()
	return 0;
}

It might be theoretical, but conversion to managed device resources is
not straight forward in some cases.

- Péter

> 
> Huang Shijie (46):
>   dmaengine: zx_dma: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: zynqmp_dma: use dmaenginem_async_device_register to
>     simplify the code
>   dmaengine: xilinx_dma: use dmaenginem_async_device_register to
>     simplify the code
>   dmaengine: xgene-dma: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: txx9dmac: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: timb_dma: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: omap-dma: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: edma: use dmaenginem_async_device_register to simplify the
>     code
>   dmaengine: cppi41: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: tegra210-adma: use helper dmaenginem_async_device_register
>   dmaengine: tegra20-apb-dma: use helper
>     dmaenginem_async_device_register
>   dmaengine: sun6i-dma: use helper dmaenginem_async_device_register
>   dmaengine: sun4i-dma: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: coh901318: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: s3c24xx-dma: use dmaenginem_async_device_register to
>     simplify the code
>   dmaengine: ste_dma40: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: stm32-mdma: use dmaenginem_async_device_register to
>     simplify the code
>   dmaengine: stm32-dma: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: sprd-dma: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: sirf-dma: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: bam_dma: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: sudmac: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: sa11x0-dma: use dmaenginem_async_device_register to
>     simplify the code
>   dmaengine: nbpfaxi: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: mmp_tdma: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: shdmac: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: usb-dmac: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: rcar-dmac: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: hidma: use dmaenginem_async_device_register to simplify the
>     code
>   dmaengine: pxa_dma: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: moxart-dma: use dmaenginem_async_device_register to
>     simplify the code
>   dmaengine: pl330: use dmaenginem_async_device_register to simplify the
>     code
>   dmaengine: pch_dma: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: mxs-dma: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: mtk-hsdma: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: k3dma: use dmaenginem_async_device_register to simplify the
>     code
>   dmaengine: imx-sdma: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: imx-dma: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: img-mdc-dma: use dmaenginem_async_device_register to
>     simplify the code
>   dmaengine: fsl-edma: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: at_hdmac: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: at_xdmac: use dmaenginem_async_device_register to simplify
>     the code
>   dmaengine: dma-jz4780: use dmaenginem_async_device_register to
>     simplify the code
>   dmaengine: dma-jz4740: use dmaenginem_async_device_register to
>     simplify the code
>   dmaengine: dma-axi-dmac: use dmaenginem_async_device_register to
>     simplify the code
>   dmaengine: add COMPILE_TEST for the drivers
> 
>  drivers/dma/Kconfig              | 24 ++++++++++++------------
>  drivers/dma/at_hdmac.c           |  4 +---
>  drivers/dma/at_xdmac.c           |  7 ++-----
>  drivers/dma/coh901318.c          | 14 ++++----------
>  drivers/dma/dma-axi-dmac.c       |  7 ++-----
>  drivers/dma/dma-jz4740.c         |  7 ++-----
>  drivers/dma/dma-jz4780.c         |  8 ++------
>  drivers/dma/fsl-edma.c           |  4 +---
>  drivers/dma/img-mdc-dma.c        |  7 ++-----
>  drivers/dma/imx-dma.c            |  8 ++------
>  drivers/dma/imx-sdma.c           |  7 ++-----
>  drivers/dma/k3dma.c              |  7 ++-----
>  drivers/dma/mediatek/mtk-hsdma.c |  4 +---
>  drivers/dma/mmp_tdma.c           |  7 ++-----
>  drivers/dma/moxart-dma.c         |  5 +----
>  drivers/dma/mxs-dma.c            |  3 +--
>  drivers/dma/nbpfaxi.c            |  7 ++-----
>  drivers/dma/pch_dma.c            |  4 +---
>  drivers/dma/pl330.c              |  4 +---
>  drivers/dma/pxa_dma.c            |  3 +--
>  drivers/dma/qcom/bam_dma.c       |  7 ++-----
>  drivers/dma/qcom/hidma.c         |  3 +--
>  drivers/dma/s3c24xx-dma.c        | 11 +++--------
>  drivers/dma/sa11x0-dma.c         |  4 +---
>  drivers/dma/sh/rcar-dmac.c       |  5 +----
>  drivers/dma/sh/shdmac.c          |  5 +----
>  drivers/dma/sh/sudmac.c          |  4 +---
>  drivers/dma/sh/usb-dmac.c        |  3 +--
>  drivers/dma/sirf-dma.c           |  7 ++-----
>  drivers/dma/sprd-dma.c           |  7 ++-----
>  drivers/dma/ste_dma40.c          | 14 +++++---------
>  drivers/dma/stm32-dma.c          |  3 +--
>  drivers/dma/stm32-mdma.c         |  4 +---
>  drivers/dma/sun4i-dma.c          |  7 ++-----
>  drivers/dma/sun6i-dma.c          |  7 ++-----
>  drivers/dma/tegra20-apb-dma.c    |  8 ++------
>  drivers/dma/tegra210-adma.c      |  8 ++------
>  drivers/dma/ti/Kconfig           |  2 +-
>  drivers/dma/ti/cppi41.c          |  7 ++-----
>  drivers/dma/ti/edma.c            |  8 ++------
>  drivers/dma/ti/omap-dma.c        |  5 +----
>  drivers/dma/timb_dma.c           |  3 +--
>  drivers/dma/txx9dmac.c           |  4 +---
>  drivers/dma/xgene-dma.c          | 16 ++--------------
>  drivers/dma/xilinx/xilinx_dma.c  |  5 +----
>  drivers/dma/xilinx/zynqmp_dma.c  |  4 +---
>  drivers/dma/zx_dma.c             |  7 ++-----
>  47 files changed, 88 insertions(+), 221 deletions(-)
> 

Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

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

* Re: [PATCH 00/46] Use dmaenginem_async_device_register to simplify code
  2018-08-03  8:20 ` Peter Ujfalusi
@ 2018-08-03  8:48   ` Huang Shijie
  2018-08-05  1:03   ` Huang Shijie
  1 sibling, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-03  8:48 UTC (permalink / raw)
  To: Peter Ujfalusi
  Cc: vkoul, dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, keescook, horms+renesas,
	geert+renesas, shawnguo, baoyou.xie, michal.simek, baohua,
	ludovic.desroches, linus.walleij, david.brown

On Fri, Aug 03, 2018 at 11:20:49AM +0300, Peter Ujfalusi wrote:
> Hi,
> 
> On 2018-08-03 10:19, Huang Shijie wrote:
> > All the patches are using dmaenginem_async_device_register to simplify code
> > except the last one:
> >   dmaengine: add COMPILE_TEST for the drivers
> > 
> > I use the last one to do the compiler test.  
> > There are still 20 drivers which do not use the dmaenginem_async_device_register.
> > Let me take a rest, if this patch set is accepted, I will do the rest.
> 
> I think for most of the drivers this series is going to open a race
> which is essentially:
> 
> prior:
> _remove()
> {
> ...
> 	dma_async_device_register()
> 	/* Free resources, disable HW, etc */
> 	return 0;
> }
> 
> after:
> _remove()
> {
> ...
> 	/* Free resources, disable HW, etc */
> 	/*
> 	 * The dma device is still registered and a channel can be
> 	 * requested
> 	 */
> 
> 	dma_async_device_register()
> 	return 0;
> }
> 
> It might be theoretical, but conversion to managed device resources is
> not straight forward in some cases. 
Yes. 

okay, let me think again..

@Vinod, please just ignore this patch set.

Thanks
Huang Shijie

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

* Re: [PATCH 00/46] Use dmaenginem_async_device_register to simplify code
  2018-08-03  8:20 ` Peter Ujfalusi
  2018-08-03  8:48   ` Huang Shijie
@ 2018-08-05  1:03   ` Huang Shijie
  1 sibling, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-05  1:03 UTC (permalink / raw)
  To: Peter Ujfalusi
  Cc: vkoul, dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, keescook, horms+renesas,
	geert+renesas, shawnguo, baoyou.xie, michal.simek, baohua,
	ludovic.desroches, linus.walleij, david.brown

On Fri, Aug 03, 2018 at 11:20:49AM +0300, Peter Ujfalusi wrote:
> Hi,
> 
> On 2018-08-03 10:19, Huang Shijie wrote:
> > All the patches are using dmaenginem_async_device_register to simplify code
> > except the last one:
> >   dmaengine: add COMPILE_TEST for the drivers
> > 
> > I use the last one to do the compiler test.  
> > There are still 20 drivers which do not use the dmaenginem_async_device_register.
> > Let me take a rest, if this patch set is accepted, I will do the rest.
> 
> I think for most of the drivers this series is going to open a race
> which is essentially:
> 
> prior:
> _remove()
> {
> ...
> 	dma_async_device_register()
> 	/* Free resources, disable HW, etc */

If these resources are managed by the devm_* APIs.
We can use the dmaenginem_async_device_register().

The Devres will release all the things in the following order:
       ................................................
 	dma_async_device_unregister()
 	/* Free resources, disable HW, etc */
       ................................................

    
Thanks
Huang Shijie

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

* Re: [PATCH 09/46] dmaengine: cppi41: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:55   ` Peter Ujfalusi
  2018-08-03  8:02     ` Huang Shijie
@ 2018-08-06  3:28     ` Huang Shijie
  2018-08-07  7:01       ` Peter Ujfalusi
  1 sibling, 1 reply; 64+ messages in thread
From: Huang Shijie @ 2018-08-06  3:28 UTC (permalink / raw)
  To: Peter Ujfalusi
  Cc: vkoul, dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, keescook, horms+renesas,
	geert+renesas, shawnguo, baoyou.xie, michal.simek, baohua,
	ludovic.desroches, linus.walleij, david.brown

On Fri, Aug 03, 2018 at 10:55:25AM +0300, Peter Ujfalusi wrote:
> 
> 
> On 2018-08-03 10:19, Huang Shijie wrote:
> > Use dmaenginem_async_device_register to simplify the code:
> >    remove dma_async_device_unregister
> > 
> > Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
> > ---
> >  drivers/dma/ti/cppi41.c | 7 ++-----
> >  1 file changed, 2 insertions(+), 5 deletions(-)
> > 
> > diff --git a/drivers/dma/ti/cppi41.c b/drivers/dma/ti/cppi41.c
> > index 1497da367710..d2998a19ed2e 100644
> > --- a/drivers/dma/ti/cppi41.c
> > +++ b/drivers/dma/ti/cppi41.c
> > @@ -1096,21 +1096,19 @@ static int cppi41_dma_probe(struct platform_device *pdev)
> >  		goto err_chans;
> >  	cdd->irq = irq;
> >  
> > -	ret = dma_async_device_register(&cdd->ddev);
> > +	ret = dmaenginem_async_device_register(&cdd->ddev);
> >  	if (ret)
> >  		goto err_chans;
> >  
> >  	ret = of_dma_controller_register(dev->of_node,
> >  			cppi41_dma_xlate, &cpp41_dma_info);
> >  	if (ret)
> > -		goto err_of;
> > +		goto err_chans;
> >  
> >  	pm_runtime_mark_last_busy(dev);
> >  	pm_runtime_put_autosuspend(dev);
> >  
> >  	return 0;
> > -err_of:
> > -	dma_async_device_unregister(&cdd->ddev);
> >  err_chans:
> >  	deinit_cppi41(dev, cdd);
> >  err_init_cppi:
> > @@ -1132,7 +1130,6 @@ static int cppi41_dma_remove(struct platform_device *pdev)
> >  		dev_err(&pdev->dev, "%s could not pm_runtime_get: %i\n",
> >  			__func__, error);
> >  	of_dma_controller_free(pdev->dev.of_node);
> > -	dma_async_device_unregister(&cdd->ddev);
> 
> If I read the code right then this is not safe.
I read the code again, and find it is okay.

> We would have deinitalized cppi41 driver which is not functional, but we
> will still have the dma device registered and if a channel is requested
> we will have kernel crash.
We cannot succeed to request a channel when the drv->remove() is called.

Please see __device_release_driver:
  ---------------------------------------------------------------------
		if (dev->bus && dev->bus->remove)
			dev->bus->remove(dev);
		else if (drv->remove)
			drv->remove(dev);

		device_links_driver_cleanup(dev);
		dma_deconfigure(dev);

		devres_release_all(dev);    ============> Devres release
  ---------------------------------------------------------------------

For the DMA engine driver, there is only one case which will calls drv->remove():
        Use the rmmod(or modprobe -r).

We do not use the device_link_add API for DMA engines.
And we not manually call the device_release_driver() for DMA engines.

But when we use the rmmod, the module state will be MODULE_STATE_GOING.
In the find_candidate(), dma_chan_get() will fail.
And we cannot get a channel.

Please correct me if I am wrong :)

Thanks
Huang Shijie

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

* Re: [PATCH 09/46] dmaengine: cppi41: use dmaenginem_async_device_register to simplify the code
  2018-08-06  3:28     ` Huang Shijie
@ 2018-08-07  7:01       ` Peter Ujfalusi
  2018-08-07  7:16         ` Huang Shijie
  2018-08-08  7:16         ` Tony Lindgren
  0 siblings, 2 replies; 64+ messages in thread
From: Peter Ujfalusi @ 2018-08-07  7:01 UTC (permalink / raw)
  To: Huang Shijie, Alexandre Bailon, Tony Lindgren
  Cc: vkoul, dmaengine, linux-kernel, dave.jiang, radhey.shyam.pandey,
	appana.durga.rao, jmkrzyszt, gomonovych, keescook, horms+renesas,
	geert+renesas, shawnguo, baoyou.xie, michal.simek, baohua,
	ludovic.desroches, linus.walleij, david.brown

Hi,

On 2018-08-06 06:28, Huang Shijie wrote:
> On Fri, Aug 03, 2018 at 10:55:25AM +0300, Peter Ujfalusi wrote:
>>
>>
>> On 2018-08-03 10:19, Huang Shijie wrote:
>>> Use dmaenginem_async_device_register to simplify the code:
>>>    remove dma_async_device_unregister
>>>
>>> Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
>>> ---
>>>  drivers/dma/ti/cppi41.c | 7 ++-----
>>>  1 file changed, 2 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/drivers/dma/ti/cppi41.c b/drivers/dma/ti/cppi41.c
>>> index 1497da367710..d2998a19ed2e 100644
>>> --- a/drivers/dma/ti/cppi41.c
>>> +++ b/drivers/dma/ti/cppi41.c
>>> @@ -1096,21 +1096,19 @@ static int cppi41_dma_probe(struct platform_device *pdev)
>>>  		goto err_chans;
>>>  	cdd->irq = irq;
>>>  
>>> -	ret = dma_async_device_register(&cdd->ddev);
>>> +	ret = dmaenginem_async_device_register(&cdd->ddev);
>>>  	if (ret)
>>>  		goto err_chans;
>>>  
>>>  	ret = of_dma_controller_register(dev->of_node,
>>>  			cppi41_dma_xlate, &cpp41_dma_info);
>>>  	if (ret)
>>> -		goto err_of;
>>> +		goto err_chans;
>>>  
>>>  	pm_runtime_mark_last_busy(dev);
>>>  	pm_runtime_put_autosuspend(dev);
>>>  
>>>  	return 0;
>>> -err_of:
>>> -	dma_async_device_unregister(&cdd->ddev);
>>>  err_chans:
>>>  	deinit_cppi41(dev, cdd);
>>>  err_init_cppi:
>>> @@ -1132,7 +1130,6 @@ static int cppi41_dma_remove(struct platform_device *pdev)
>>>  		dev_err(&pdev->dev, "%s could not pm_runtime_get: %i\n",
>>>  			__func__, error);
>>>  	of_dma_controller_free(pdev->dev.of_node);
>>> -	dma_async_device_unregister(&cdd->ddev);
>>
>> If I read the code right then this is not safe.
> I read the code again, and find it is okay.
> 
>> We would have deinitalized cppi41 driver which is not functional, but we
>> will still have the dma device registered and if a channel is requested
>> we will have kernel crash.
> We cannot succeed to request a channel when the drv->remove() is called.
> 
> Please see __device_release_driver:
>   ---------------------------------------------------------------------
> 		if (dev->bus && dev->bus->remove)
> 			dev->bus->remove(dev);
> 		else if (drv->remove)
> 			drv->remove(dev);
> 
> 		device_links_driver_cleanup(dev);
> 		dma_deconfigure(dev);
> 
> 		devres_release_all(dev);    ============> Devres release
>   ---------------------------------------------------------------------
> 
> For the DMA engine driver, there is only one case which will calls drv->remove():
>         Use the rmmod(or modprobe -r).
> 
> We do not use the device_link_add API for DMA engines.
> And we not manually call the device_release_driver() for DMA engines.
> 
> But when we use the rmmod, the module state will be MODULE_STATE_GOING.
> In the find_candidate(), dma_chan_get() will fail.
> And we cannot get a channel.
> 
> Please correct me if I am wrong :)

You are perfectly right.

It might be only me, but I like to keep the resource teardown in a
reverse order of their creation. If everything is devm then it is granted.

In case of cppi4 it looks safe after reading in to the DMAengine core,
module core and platform core code.

But does the removed three lines worth over the clarity of how the
module removal is proceeding?

Alexandre and Tony put lots of effort to the cppi4 driver, I let them
decide.

- Péter

Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

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

* Re: [PATCH 09/46] dmaengine: cppi41: use dmaenginem_async_device_register to simplify the code
  2018-08-07  7:01       ` Peter Ujfalusi
@ 2018-08-07  7:16         ` Huang Shijie
  2018-08-08  7:16         ` Tony Lindgren
  1 sibling, 0 replies; 64+ messages in thread
From: Huang Shijie @ 2018-08-07  7:16 UTC (permalink / raw)
  To: Peter Ujfalusi
  Cc: Alexandre Bailon, Tony Lindgren, vkoul, dmaengine, linux-kernel,
	dave.jiang, radhey.shyam.pandey, appana.durga.rao, jmkrzyszt,
	gomonovych, keescook, horms+renesas, geert+renesas, shawnguo,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown

On Tue, Aug 07, 2018 at 10:01:47AM +0300, Peter Ujfalusi wrote:
> Hi,
> 
> On 2018-08-06 06:28, Huang Shijie wrote:
> It might be only me, but I like to keep the resource teardown in a
> reverse order of their creation. If everything is devm then it is granted.
Yes.

If everything is devm then it is granted..

> 
> In case of cppi4 it looks safe after reading in to the DMAengine core,
> module core and platform core code.
> 
> But does the removed three lines worth over the clarity of how the
> module removal is proceeding?
Please keep the driver as it is if you like the traditional way. :)

The DMA driver's maintainer has the right to decide whether
to use the dmaenginem_async_device_register or not.

Thanks
Huang Shijie

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

* Re: [PATCH 09/46] dmaengine: cppi41: use dmaenginem_async_device_register to simplify the code
  2018-08-07  7:01       ` Peter Ujfalusi
  2018-08-07  7:16         ` Huang Shijie
@ 2018-08-08  7:16         ` Tony Lindgren
  1 sibling, 0 replies; 64+ messages in thread
From: Tony Lindgren @ 2018-08-08  7:16 UTC (permalink / raw)
  To: Peter Ujfalusi
  Cc: Huang Shijie, Alexandre Bailon, vkoul, dmaengine, linux-kernel,
	dave.jiang, radhey.shyam.pandey, appana.durga.rao, jmkrzyszt,
	gomonovych, keescook, horms+renesas, geert+renesas, shawnguo,
	baoyou.xie, michal.simek, baohua, ludovic.desroches,
	linus.walleij, david.brown

* Peter Ujfalusi <peter.ujfalusi@ti.com> [180807 07:05]:
> But does the removed three lines worth over the clarity of how the
> module removal is proceeding?
> 
> Alexandre and Tony put lots of effort to the cppi4 driver, I let them
> decide.

Up to you guys as far as I'm concerned.

Tony

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

* Re: [PATCH 07/46] dmaengine: omap-dma: use dmaenginem_async_device_register to simplify the code
  2018-08-03  7:47   ` Peter Ujfalusi
  2018-08-03  7:52     ` Huang Shijie
@ 2018-08-09  2:36     ` Vinod
  1 sibling, 0 replies; 64+ messages in thread
From: Vinod @ 2018-08-09  2:36 UTC (permalink / raw)
  To: Peter Ujfalusi
  Cc: Huang Shijie, dmaengine, linux-kernel, dave.jiang,
	radhey.shyam.pandey, appana.durga.rao, jmkrzyszt, gomonovych,
	keescook, horms+renesas, geert+renesas, shawnguo, baoyou.xie,
	michal.simek, baohua, ludovic.desroches, linus.walleij,
	david.brown

On 03-08-18, 10:47, Peter Ujfalusi wrote:
> 
> 
> On 2018-08-03 10:19, Huang Shijie wrote:
> > Use dmaenginem_async_device_register to simplify the code:
> >    remove dma_async_device_unregister
> > 
> > Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
> > ---
> >  drivers/dma/ti/omap-dma.c | 5 +----
> >  1 file changed, 1 insertion(+), 4 deletions(-)
> > 
> > diff --git a/drivers/dma/ti/omap-dma.c b/drivers/dma/ti/omap-dma.c
> > index a4a931ddf6f6..085748c6eb67 100644
> > --- a/drivers/dma/ti/omap-dma.c
> > +++ b/drivers/dma/ti/omap-dma.c
> > @@ -1566,7 +1566,7 @@ static int omap_dma_probe(struct platform_device *pdev)
> >  		}
> >  	}
> >  
> > -	rc = dma_async_device_register(&od->ddev);
> > +	rc = dmaenginem_async_device_register(&od->ddev);
> 
> Why it is dmaenginem_async_device_register() and not aligned other
> resource managed functions (devm_* dmam_*), like
> devm_dma_async_device_register()
> 
> and in dmaenginem_async_device_register() what is the 'm' in dmaenginem ?
> DMAengine Managed?

yup, as you rightly said we could have done devm_dmaengine... or like
few others do dmaenginem_

Yes it makes a little odd API but am trying to move away from dma_ to
dmaengine_ for everything new..

-- 
~Vinod

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

end of thread, other threads:[~2018-08-09  2:36 UTC | newest]

Thread overview: 64+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-03  7:19 [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Huang Shijie
2018-08-03  7:19 ` [PATCH 01/46] dmaengine: zx_dma: use dmaenginem_async_device_register to simplify the code Huang Shijie
2018-08-03  7:19 ` [PATCH 02/46] dmaengine: zynqmp_dma: " Huang Shijie
2018-08-03  7:19 ` [PATCH 03/46] dmaengine: xilinx_dma: " Huang Shijie
2018-08-03  7:19 ` [PATCH 04/46] dmaengine: xgene-dma: " Huang Shijie
2018-08-03  7:19 ` [PATCH 05/46] dmaengine: txx9dmac: " Huang Shijie
2018-08-03  7:19 ` [PATCH 06/46] dmaengine: timb_dma: " Huang Shijie
2018-08-03  7:19 ` [PATCH 07/46] dmaengine: omap-dma: " Huang Shijie
2018-08-03  7:47   ` Peter Ujfalusi
2018-08-03  7:52     ` Huang Shijie
2018-08-09  2:36     ` Vinod
2018-08-03  7:19 ` [PATCH 08/46] dmaengine: edma: " Huang Shijie
2018-08-03  7:50   ` Peter Ujfalusi
2018-08-03  7:54     ` Huang Shijie
2018-08-03  7:19 ` [PATCH 09/46] dmaengine: cppi41: " Huang Shijie
2018-08-03  7:55   ` Peter Ujfalusi
2018-08-03  8:02     ` Huang Shijie
2018-08-06  3:28     ` Huang Shijie
2018-08-07  7:01       ` Peter Ujfalusi
2018-08-07  7:16         ` Huang Shijie
2018-08-08  7:16         ` Tony Lindgren
2018-08-03  7:19 ` [PATCH 10/46] dmaengine: tegra210-adma: use helper dmaenginem_async_device_register Huang Shijie
2018-08-03  7:19 ` [PATCH 11/46] dmaengine: tegra20-apb-dma: " Huang Shijie
2018-08-03  7:19 ` [PATCH 12/46] dmaengine: sun6i-dma: " Huang Shijie
2018-08-03  7:19 ` [PATCH 13/46] dmaengine: sun4i-dma: use dmaenginem_async_device_register to simplify the code Huang Shijie
2018-08-03  7:19 ` [PATCH 14/46] dmaengine: coh901318: " Huang Shijie
2018-08-03  7:19 ` [PATCH 15/46] dmaengine: s3c24xx-dma: " Huang Shijie
2018-08-03  7:19 ` [PATCH 16/46] dmaengine: ste_dma40: " Huang Shijie
2018-08-03  7:19 ` [PATCH 17/46] dmaengine: stm32-mdma: " Huang Shijie
2018-08-03  8:10   ` Pierre Yves MORDRET
2018-08-03  7:19 ` [PATCH 18/46] dmaengine: stm32-dma: " Huang Shijie
2018-08-03  7:19 ` [PATCH 19/46] dmaengine: sprd-dma: " Huang Shijie
2018-08-03  7:19 ` [PATCH 20/46] dmaengine: sirf-dma: " Huang Shijie
2018-08-03  7:19 ` [PATCH 21/46] dmaengine: bam_dma: " Huang Shijie
2018-08-03  7:19 ` [PATCH 22/46] dmaengine: sudmac: " Huang Shijie
2018-08-03  7:19 ` [PATCH 23/46] dmaengine: sa11x0-dma: " Huang Shijie
2018-08-03  7:19 ` [PATCH 24/46] dmaengine: nbpfaxi: " Huang Shijie
2018-08-03  7:19 ` [PATCH 25/46] dmaengine: mmp_tdma: " Huang Shijie
2018-08-03  7:19 ` [PATCH 26/46] dmaengine: shdmac: " Huang Shijie
2018-08-03  7:19 ` [PATCH 27/46] dmaengine: usb-dmac: " Huang Shijie
2018-08-03  7:19 ` [PATCH 28/46] dmaengine: rcar-dmac: " Huang Shijie
2018-08-03  7:19 ` [PATCH 29/46] dmaengine: hidma: " Huang Shijie
2018-08-03  7:20 ` [PATCH 30/46] dmaengine: pxa_dma: " Huang Shijie
2018-08-03  7:20 ` [PATCH 31/46] dmaengine: moxart-dma: " Huang Shijie
2018-08-03  7:20 ` [PATCH 32/46] dmaengine: pl330: " Huang Shijie
2018-08-03  7:20 ` [PATCH 33/46] dmaengine: pch_dma: " Huang Shijie
2018-08-03  7:20 ` [PATCH 34/46] dmaengine: mxs-dma: " Huang Shijie
2018-08-03  7:20 ` [PATCH 35/46] dmaengine: mtk-hsdma: " Huang Shijie
2018-08-03  7:20 ` [PATCH 36/46] dmaengine: k3dma: " Huang Shijie
2018-08-03  7:20 ` [PATCH 37/46] dmaengine: imx-sdma: " Huang Shijie
2018-08-03  7:20 ` [PATCH 38/46] dmaengine: imx-dma: " Huang Shijie
2018-08-03  7:20 ` [PATCH 39/46] dmaengine: img-mdc-dma: " Huang Shijie
2018-08-03  7:20 ` [PATCH 40/46] dmaengine: fsl-edma: " Huang Shijie
2018-08-03  7:20 ` [PATCH 41/46] dmaengine: at_hdmac: " Huang Shijie
2018-08-03  7:20 ` [PATCH 42/46] dmaengine: at_xdmac: " Huang Shijie
2018-08-03  7:20 ` [PATCH 43/46] dmaengine: dma-jz4780: " Huang Shijie
2018-08-03  7:20 ` [PATCH 44/46] dmaengine: dma-jz4740: " Huang Shijie
2018-08-03  7:20 ` [PATCH 45/46] dmaengine: dma-axi-dmac: " Huang Shijie
2018-08-03  7:20 ` [PATCH 46/46] dmaengine: add COMPILE_TEST for the drivers Huang Shijie
2018-08-03  7:51 ` [PATCH 00/46] Use dmaenginem_async_device_register to simplify code Lars-Peter Clausen
2018-08-03  7:59   ` Huang Shijie
2018-08-03  8:20 ` Peter Ujfalusi
2018-08-03  8:48   ` Huang Shijie
2018-08-05  1:03   ` Huang Shijie

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).