summaryrefslogtreecommitdiffstats
path: root/drivers/dma
diff options
context:
space:
mode:
authorVinod Koul <vinod.koul@intel.com>2016-07-05 09:58:33 +0530
committerVinod Koul <vinod.koul@intel.com>2016-07-16 20:19:05 +0530
commit898dbbf65f1d041d5c1b29a0880286e26fac5076 (patch)
tree8765e3a8ec011d76cc7df4dd2de5680b1d36c520 /drivers/dma
parent085fedf7ee17a966d3e5b5d8523a18e3017242cf (diff)
downloadlinux-0-day-898dbbf65f1d041d5c1b29a0880286e26fac5076.tar.gz
linux-0-day-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.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/dma/omap-dma.c b/drivers/dma/omap-dma.c
index 1e984e18c1266..5ff52998172a3 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) {