diff options
author | Vinod Koul <vinod.koul@intel.com> | 2016-07-05 07:28:33 +0300 |
---|---|---|
committer | Vinod Koul <vinod.koul@intel.com> | 2016-07-16 17:49:05 +0300 |
commit | 898dbbf65f1d041d5c1b29a0880286e26fac5076 (patch) | |
tree | 8765e3a8ec011d76cc7df4dd2de5680b1d36c520 /drivers/dma | |
parent | 085fedf7ee17a966d3e5b5d8523a18e3017242cf (diff) | |
download | linux-898dbbf65f1d041d5c1b29a0880286e26fac5076.tar.xz |
dmaengine: omap-dma: explicitly freeup irq
dmaengine device should explicitly call devm_free_irq() when using
devm_request_irq().
The irq is still ON when devices remove is executed and irq should be
quiesced before remove is completed.
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Diffstat (limited to 'drivers/dma')
-rw-r--r-- | drivers/dma/omap-dma.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/dma/omap-dma.c b/drivers/dma/omap-dma.c index 1e984e18c126..5ff52998172a 100644 --- a/drivers/dma/omap-dma.c +++ b/drivers/dma/omap-dma.c @@ -1204,10 +1204,14 @@ static int omap_dma_probe(struct platform_device *pdev) static int omap_dma_remove(struct platform_device *pdev) { struct omap_dmadev *od = platform_get_drvdata(pdev); + int irq; if (pdev->dev.of_node) of_dma_controller_free(pdev->dev.of_node); + irq = platform_get_irq(pdev, 1); + devm_free_irq(&pdev->dev, irq, od); + dma_async_device_unregister(&od->ddev); if (!od->legacy) { |