Message ID | 20240826082218.2331-1-liulei.rjpt@vivo.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | usb drivers use devm_clk_get_enabled() helpers | expand |
Le 26/08/2024 à 10:22, Lei Liu a écrit : > The devm_clk_get_enabled() helpers: > - call devm_clk_get() > - call clk_prepare_enable() and register what is needed in order to > call clk_disable_unprepare() when needed, as a managed resource. > > This simplifies the code and avoids calls to clk_disable_unprepare(). > Hi, The S-o-b should be here, above the first ---. Same for patch 4 et 5. > --- > v2 -> v3 > Fix the email thread. > > --- > v1 -> v2 > Incorrect usage of clk_prepare_enable() should be > corrected to devm_clk_get_enabled(). > > Signed-off-by: Lei Liu <liulei.rjpt-DGpbCiVdSXo@public.gmane.org> > --- > drivers/usb/gadget/udc/pxa27x_udc.c | 6 +----- > 1 file changed, 1 insertion(+), 5 deletions(-) > > diff --git a/drivers/usb/gadget/udc/pxa27x_udc.c b/drivers/usb/gadget/udc/pxa27x_udc.c > index 1a6317e4b2a3..0619507d187e 100644 > --- a/drivers/usb/gadget/udc/pxa27x_udc.c > +++ b/drivers/usb/gadget/udc/pxa27x_udc.c > @@ -2398,14 +2398,10 @@ static int pxa_udc_probe(struct platform_device *pdev) > if (udc->gpiod) > gpiod_direction_output(udc->gpiod, 0); > > - udc->clk = devm_clk_get(&pdev->dev, NULL); > + udc->clk = devm_clk_get_enabled(&pdev->dev, NULL); > if (IS_ERR(udc->clk)) > return PTR_ERR(udc->clk); > > - retval = clk_prepare(udc->clk); > - if (retval) > - return retval; Also the patches looks truncated, but sometimes my mailer plays me some tricks, but it looks ok on lore. See [1]. The clk_unprepare() in the error handling in the probe and in the remove function should also be removed. CJ [1]: https://lore.kernel.org/all/20240826082218.2331-1-liulei.rjpt@vivo.com/
diff --git a/drivers/usb/gadget/udc/pxa27x_udc.c b/drivers/usb/gadget/udc/pxa27x_udc.c index 1a6317e4b2a3..0619507d187e 100644 --- a/drivers/usb/gadget/udc/pxa27x_udc.c +++ b/drivers/usb/gadget/udc/pxa27x_udc.c @@ -2398,14 +2398,10 @@ static int pxa_udc_probe(struct platform_device *pdev) if (udc->gpiod) gpiod_direction_output(udc->gpiod, 0); - udc->clk = devm_clk_get(&pdev->dev, NULL); + udc->clk = devm_clk_get_enabled(&pdev->dev, NULL); if (IS_ERR(udc->clk)) return PTR_ERR(udc->clk); - retval = clk_prepare(udc->clk); - if (retval) - return retval; - udc->vbus_sensed = 0; the_controller = udc;
The devm_clk_get_enabled() helpers: - call devm_clk_get() - call clk_prepare_enable() and register what is needed in order to call clk_disable_unprepare() when needed, as a managed resource. This simplifies the code and avoids calls to clk_disable_unprepare(). --- v2 -> v3 Fix the email thread. --- v1 -> v2 Incorrect usage of clk_prepare_enable() should be corrected to devm_clk_get_enabled(). Signed-off-by: Lei Liu <liulei.rjpt@vivo.com> --- drivers/usb/gadget/udc/pxa27x_udc.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)