Hi Daniel, >>> + >>> +static int stm32_dma_remove(struct platform_device *pdev) >>> +{ >>> + struct stm32_dma_device *dmadev = platform_get_drvdata(pdev); >>> + >>> + of_dma_controller_free(pdev->dev.of_node); >>> + >>> + dma_async_device_unregister(&dmadev->ddev); >>> + >>> + clk_disable_unprepare(dmadev->clk); >> >> >> What is the purpose of disabling/unpreparing the clock here? >> stm32_dma_alloc_chan_resources() and stm32_dma_free_chan_resources() should >> pair up and the clock should already be stopped. stm32_dma_remove() could be called during an on-going transfer during module unload. So in that case, it seems that disabling/unpreparing the clock is needed. BR, Cedric -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html