Re: [PATCH 2/2] usb: ohci-nxp: Use helper function devm_clk_get_enabled()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Sep 02, 2024 at 08:30:20PM +0800, Zhang Zekun wrote:
> devm_clk_get() and clk_prepare_enable() can be replaced by helper
> function devm_clk_get_enabled(). Let's use devm_clk_get_enabled() to
> simplify code and avoid calling clk_disable_unprepare().
> 
> Signed-off-by: Zhang Zekun <zhangzekun11@xxxxxxxxxx>
> ---

Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>

>  drivers/usb/host/ohci-nxp.c | 18 ++++--------------
>  1 file changed, 4 insertions(+), 14 deletions(-)
> 
> diff --git a/drivers/usb/host/ohci-nxp.c b/drivers/usb/host/ohci-nxp.c
> index 8264c454f6bd..5b775e1ea527 100644
> --- a/drivers/usb/host/ohci-nxp.c
> +++ b/drivers/usb/host/ohci-nxp.c
> @@ -51,8 +51,6 @@ static struct hc_driver __read_mostly ohci_nxp_hc_driver;
>  
>  static struct i2c_client *isp1301_i2c_client;
>  
> -static struct clk *usb_host_clk;
> -
>  static void isp1301_configure_lpc32xx(void)
>  {
>  	/* LPC32XX only supports DAT_SE0 USB mode */
> @@ -155,6 +153,7 @@ static int ohci_hcd_nxp_probe(struct platform_device *pdev)
>  	struct resource *res;
>  	int ret = 0, irq;
>  	struct device_node *isp1301_node;
> +	struct clk *usb_host_clk;
>  
>  	if (pdev->dev.of_node) {
>  		isp1301_node = of_parse_phandle(pdev->dev.of_node,
> @@ -180,26 +179,20 @@ static int ohci_hcd_nxp_probe(struct platform_device *pdev)
>  	}
>  
>  	/* Enable USB host clock */
> -	usb_host_clk = devm_clk_get(&pdev->dev, NULL);
> +	usb_host_clk = devm_clk_get_enabled(&pdev->dev, NULL);
>  	if (IS_ERR(usb_host_clk)) {
> -		dev_err(&pdev->dev, "failed to acquire USB OHCI clock\n");
> +		dev_err(&pdev->dev, "failed to acquire and start USB OHCI clock\n");
>  		ret = PTR_ERR(usb_host_clk);
>  		goto fail_disable;
>  	}
>  
> -	ret = clk_prepare_enable(usb_host_clk);
> -	if (ret < 0) {
> -		dev_err(&pdev->dev, "failed to start USB OHCI clock\n");
> -		goto fail_disable;
> -	}
> -
>  	isp1301_configure();
>  
>  	hcd = usb_create_hcd(driver, &pdev->dev, dev_name(&pdev->dev));
>  	if (!hcd) {
>  		dev_err(&pdev->dev, "Failed to allocate HC buffer\n");
>  		ret = -ENOMEM;
> -		goto fail_hcd;
> +		goto fail_disable;
>  	}
>  
>  	hcd->regs = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
> @@ -229,8 +222,6 @@ static int ohci_hcd_nxp_probe(struct platform_device *pdev)
>  	ohci_nxp_stop_hc();
>  fail_resource:
>  	usb_put_hcd(hcd);
> -fail_hcd:
> -	clk_disable_unprepare(usb_host_clk);
>  fail_disable:
>  	isp1301_i2c_client = NULL;
>  	return ret;
> @@ -243,7 +234,6 @@ static void ohci_hcd_nxp_remove(struct platform_device *pdev)
>  	usb_remove_hcd(hcd);
>  	ohci_nxp_stop_hc();
>  	usb_put_hcd(hcd);
> -	clk_disable_unprepare(usb_host_clk);
>  	isp1301_i2c_client = NULL;
>  }
>  
> -- 
> 2.17.1
> 




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux