[PATCH] dmaengine: fsl-edma: don't explicitly disable clocks in .remove()

Jared Kangas posted 1 patch 3 weeks, 5 days ago
drivers/dma/fsl-edma-main.c | 1 -
1 file changed, 1 deletion(-)
[PATCH] dmaengine: fsl-edma: don't explicitly disable clocks in .remove()
Posted by Jared Kangas 3 weeks, 5 days ago
The clocks in fsl_edma_engine::muxclk are allocated and enabled with
devm_clk_get_enabled(), which automatically cleans these resources up,
but these clocks are also manually disabled in fsl_edma_remove(). This
causes warnings on driver removal for each clock:

        edma_module already disabled
        WARNING: CPU: 0 PID: 418 at drivers/clk/clk.c:1200 clk_core_disable+0x198/0x1c8
        [...]
        Call trace:
         clk_core_disable+0x198/0x1c8 (P)
         clk_disable+0x34/0x58
         fsl_edma_remove+0x74/0xe8 [fsl_edma]
         [...]
        ---[ end trace 0000000000000000 ]---
        edma_module already unprepared
        WARNING: CPU: 0 PID: 418 at drivers/clk/clk.c:1059 clk_core_unprepare+0x1f8/0x220
        [...]
        Call trace:
         clk_core_unprepare+0x1f8/0x220 (P)
         clk_unprepare+0x34/0x58
         fsl_edma_remove+0x7c/0xe8 [fsl_edma]
         [...]
        ---[ end trace 0000000000000000 ]---

Fix these warnings by removing the unnecessary fsl_disable_clocks() call
in fsl_edma_remove().

Fixes: a9903de3aa16 ("dmaengine: fsl-edma: refactor using devm_clk_get_enabled")
Signed-off-by: Jared Kangas <jkangas@redhat.com>
---
 drivers/dma/fsl-edma-main.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/dma/fsl-edma-main.c b/drivers/dma/fsl-edma-main.c
index 97583c7d51a2e8e7a50c7eb4f5ff0582ac95798d..093185768ad8ef09270ae02c99d0ee2accc183bd 100644
--- a/drivers/dma/fsl-edma-main.c
+++ b/drivers/dma/fsl-edma-main.c
@@ -915,7 +915,6 @@ static void fsl_edma_remove(struct platform_device *pdev)
 	of_dma_controller_free(np);
 	dma_async_device_unregister(&fsl_edma->dma_dev);
 	fsl_edma_cleanup_vchan(&fsl_edma->dma_dev);
-	fsl_disable_clocks(fsl_edma, fsl_edma->drvdata->dmamuxs);
 }
 
 static int fsl_edma_suspend_late(struct device *dev)

---
base-commit: 7d0a66e4bb9081d75c82ec4957c50034cb0ea449
change-id: 20260112-fsl-edma-clock-removal-4e5882ecface

Best regards,
-- 
Jared Kangas <jkangas@redhat.com>
Re: [PATCH] dmaengine: fsl-edma: don't explicitly disable clocks in .remove()
Posted by Vinod Koul 4 days, 6 hours ago
On Tue, 13 Jan 2026 11:46:50 -0800, Jared Kangas wrote:
> The clocks in fsl_edma_engine::muxclk are allocated and enabled with
> devm_clk_get_enabled(), which automatically cleans these resources up,
> but these clocks are also manually disabled in fsl_edma_remove(). This
> causes warnings on driver removal for each clock:
> 
>         edma_module already disabled
>         WARNING: CPU: 0 PID: 418 at drivers/clk/clk.c:1200 clk_core_disable+0x198/0x1c8
>         [...]
>         Call trace:
>          clk_core_disable+0x198/0x1c8 (P)
>          clk_disable+0x34/0x58
>          fsl_edma_remove+0x74/0xe8 [fsl_edma]
>          [...]
>         ---[ end trace 0000000000000000 ]---
>         edma_module already unprepared
>         WARNING: CPU: 0 PID: 418 at drivers/clk/clk.c:1059 clk_core_unprepare+0x1f8/0x220
>         [...]
>         Call trace:
>          clk_core_unprepare+0x1f8/0x220 (P)
>          clk_unprepare+0x34/0x58
>          fsl_edma_remove+0x7c/0xe8 [fsl_edma]
>          [...]
>         ---[ end trace 0000000000000000 ]---
> 
> [...]

Applied, thanks!

[1/1] dmaengine: fsl-edma: don't explicitly disable clocks in .remove()
      commit: 666c53e94c1d0bf0bdf14c49505ece9ddbe725bc

Best regards,
-- 
~Vinod
Re: [PATCH] dmaengine: fsl-edma: don't explicitly disable clocks in .remove()
Posted by Frank Li 3 weeks, 5 days ago
On Tue, Jan 13, 2026 at 11:46:50AM -0800, Jared Kangas wrote:
> The clocks in fsl_edma_engine::muxclk are allocated and enabled with
> devm_clk_get_enabled(), which automatically cleans these resources up,
> but these clocks are also manually disabled in fsl_edma_remove(). This
> causes warnings on driver removal for each clock:
>
>         edma_module already disabled
>         WARNING: CPU: 0 PID: 418 at drivers/clk/clk.c:1200 clk_core_disable+0x198/0x1c8
>         [...]
>         Call trace:
>          clk_core_disable+0x198/0x1c8 (P)
>          clk_disable+0x34/0x58
>          fsl_edma_remove+0x74/0xe8 [fsl_edma]
>          [...]
>         ---[ end trace 0000000000000000 ]---
>         edma_module already unprepared
>         WARNING: CPU: 0 PID: 418 at drivers/clk/clk.c:1059 clk_core_unprepare+0x1f8/0x220
>         [...]
>         Call trace:
>          clk_core_unprepare+0x1f8/0x220 (P)
>          clk_unprepare+0x34/0x58
>          fsl_edma_remove+0x7c/0xe8 [fsl_edma]
>          [...]
>         ---[ end trace 0000000000000000 ]---
>
> Fix these warnings by removing the unnecessary fsl_disable_clocks() call
> in fsl_edma_remove().
>
> Fixes: a9903de3aa16 ("dmaengine: fsl-edma: refactor using devm_clk_get_enabled")
> Signed-off-by: Jared Kangas <jkangas@redhat.com>
> ---

Reviewed-by: Frank Li <Frank.Li@nxp.com>

>  drivers/dma/fsl-edma-main.c | 1 -
>  1 file changed, 1 deletion(-)
>
> diff --git a/drivers/dma/fsl-edma-main.c b/drivers/dma/fsl-edma-main.c
> index 97583c7d51a2e8e7a50c7eb4f5ff0582ac95798d..093185768ad8ef09270ae02c99d0ee2accc183bd 100644
> --- a/drivers/dma/fsl-edma-main.c
> +++ b/drivers/dma/fsl-edma-main.c
> @@ -915,7 +915,6 @@ static void fsl_edma_remove(struct platform_device *pdev)
>  	of_dma_controller_free(np);
>  	dma_async_device_unregister(&fsl_edma->dma_dev);
>  	fsl_edma_cleanup_vchan(&fsl_edma->dma_dev);
> -	fsl_disable_clocks(fsl_edma, fsl_edma->drvdata->dmamuxs);
>  }
>
>  static int fsl_edma_suspend_late(struct device *dev)
>
> ---
> base-commit: 7d0a66e4bb9081d75c82ec4957c50034cb0ea449
> change-id: 20260112-fsl-edma-clock-removal-4e5882ecface
>
> Best regards,
> --
> Jared Kangas <jkangas@redhat.com>
>