Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c12fe497 authored by Vignesh Raman's avatar Vignesh Raman Committed by Vinod Koul
Browse files

dma: imx-sdma: Adding tasklet_kill() in sdma_remove function.



Several dma drivers calls tasklet_kill() in remove function. This is done
because all running tasklets should be killed on remove. This is missing
in imx sdma driver, so adding tasklet_kill() in sdma_remove function.

Signed-off-by: default avatarVignesh Raman <Vignesh_Raman@mentor.com>
Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
parent 23e11811
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -1645,12 +1645,19 @@ static int sdma_remove(struct platform_device *pdev)
	struct sdma_engine *sdma = platform_get_drvdata(pdev);
	struct resource *iores = platform_get_resource(pdev, IORESOURCE_MEM, 0);
	int irq = platform_get_irq(pdev, 0);
	int i;

	dma_async_device_unregister(&sdma->dma_device);
	kfree(sdma->script_addrs);
	free_irq(irq, sdma);
	iounmap(sdma->regs);
	release_mem_region(iores->start, resource_size(iores));
	/* Kill the tasklet */
	for (i = 0; i < MAX_DMA_CHANNELS; i++) {
		struct sdma_channel *sdmac = &sdma->channel[i];

		tasklet_kill(&sdmac->tasklet);
	}
	kfree(sdma);

	platform_set_drvdata(pdev, NULL);