diff mbox series

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

Message ID 20240902123020.29267-3-zhangzekun11@huawei.com (mailing list archive)
State Accepted
Commit c146ede472717f352b7283a525bd9a1a2b15e2cf
Headers show
Series Use helper function devm_clk_get_enabled() | expand

Commit Message

Zhang Zekun Sept. 2, 2024, 12:30 p.m. UTC
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@huawei.com>
---
 drivers/usb/host/ohci-nxp.c | 18 ++++--------------
 1 file changed, 4 insertions(+), 14 deletions(-)

Comments

Alan Stern Sept. 2, 2024, 1:59 p.m. UTC | #1
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@huawei.com>
> ---

Acked-by: Alan Stern <stern@rowland.harvard.edu>

>  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
>
diff mbox series

Patch

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;
 }