Commit 6a8b0c6b authored by Wei Yongjun's avatar Wei Yongjun Committed by Vinod Koul

dmaengine: at_xdmac: fix to pass correct device identity to free_irq()

free_irq() expects the same device identity that was passed to
corresponding request_irq(), otherwise the IRQ is not freed.

Fixes: e1f7c9ee ("dmaengine: at_xdmac: creation of the atmel eXtended DMA Controller driver")
Signed-off-by: default avatarWei Yongjun <weiyj.lk@gmail.com>
Acked-by: default avatarLudovic Desroches <ludovic.desroches@atmel.com>
Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
parent 93e11eb1
...@@ -2067,7 +2067,7 @@ static int at_xdmac_probe(struct platform_device *pdev) ...@@ -2067,7 +2067,7 @@ static int at_xdmac_probe(struct platform_device *pdev)
err_clk_disable: err_clk_disable:
clk_disable_unprepare(atxdmac->clk); clk_disable_unprepare(atxdmac->clk);
err_free_irq: err_free_irq:
free_irq(atxdmac->irq, atxdmac->dma.dev); free_irq(atxdmac->irq, atxdmac);
return ret; return ret;
} }
...@@ -2081,7 +2081,7 @@ static int at_xdmac_remove(struct platform_device *pdev) ...@@ -2081,7 +2081,7 @@ static int at_xdmac_remove(struct platform_device *pdev)
dma_async_device_unregister(&atxdmac->dma); dma_async_device_unregister(&atxdmac->dma);
clk_disable_unprepare(atxdmac->clk); clk_disable_unprepare(atxdmac->clk);
free_irq(atxdmac->irq, atxdmac->dma.dev); free_irq(atxdmac->irq, atxdmac);
for (i = 0; i < atxdmac->dma.chancnt; i++) { for (i = 0; i < atxdmac->dma.chancnt; i++) {
struct at_xdmac_chan *atchan = &atxdmac->chan[i]; struct at_xdmac_chan *atchan = &atxdmac->chan[i];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment