Re: [PATCH] usb: dwc3: Don't call clk_bulk_disable_unprepare() twice
From: Thinh Nguyen
Date: Mon Sep 29 2025 - 20:30:54 EST
On Mon, Sep 29, 2025, Christophe JAILLET wrote:
> devm_clk_bulk_get_all_enabled() is used in the probe, so
> clk_bulk_disable_unprepare() should not be called explicitly in the remove
> function.
Why not? The clk_bulk_disable_unprepare() is to disable and unprepare
the clocks, not freeing the clocks.
BR,
Thinh
>
> Fixes: e0b6dc00c701 ("usb: dwc3: add generic driver to support flattened")
> Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx>
> ---
> drivers/usb/dwc3/dwc3-generic-plat.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/drivers/usb/dwc3/dwc3-generic-plat.c b/drivers/usb/dwc3/dwc3-generic-plat.c
> index d96b20570002..f8ad79c08c4e 100644
> --- a/drivers/usb/dwc3/dwc3-generic-plat.c
> +++ b/drivers/usb/dwc3/dwc3-generic-plat.c
> @@ -85,11 +85,8 @@ static int dwc3_generic_probe(struct platform_device *pdev)
> static void dwc3_generic_remove(struct platform_device *pdev)
> {
> struct dwc3 *dwc = platform_get_drvdata(pdev);
> - struct dwc3_generic *dwc3g = to_dwc3_generic(dwc);
>
> dwc3_core_remove(dwc);
> -
> - clk_bulk_disable_unprepare(dwc3g->num_clocks, dwc3g->clks);
> }
>
> static int dwc3_generic_suspend(struct device *dev)
> --
> 2.51.0
>