From: Anand Moon <linux.amoon@gmail.com>
To: Alan Stern <stern@rowland.harvard.edu>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>,
Alim Akhtar <alim.akhtar@samsung.com>
Cc: Anand Moon <linux.amoon@gmail.com>,
Christophe JAILLET <christophe.jaillet@wanadoo.fr>,
Johan Hovold <johan@kernel.org>,
linux-usb@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH v2 1/6] usb: ehci-exynos: Use devm_clk_get_enabled() helpers
Date: Thu, 4 Apr 2024 12:43:17 +0530 [thread overview]
Message-ID: <20240404071350.4242-2-linux.amoon@gmail.com> (raw)
In-Reply-To: <20240404071350.4242-1-linux.amoon@gmail.com>
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 the calls to clk_disable_unprepare().
While at it, use dev_err_probe consistently, and use its return value
to return the error code.
Signed-off-by: Anand Moon <linux.amoon@gmail.com>
---
V2: drop the clk_disable_unprepare in suspend/resume functions
fix the usb_put_hcd return before the devm_clk_get_enabled
---
drivers/usb/host/ehci-exynos.c | 19 +++++--------------
1 file changed, 5 insertions(+), 14 deletions(-)
diff --git a/drivers/usb/host/ehci-exynos.c b/drivers/usb/host/ehci-exynos.c
index f644b131cc0b..f00bfd0b13dc 100644
--- a/drivers/usb/host/ehci-exynos.c
+++ b/drivers/usb/host/ehci-exynos.c
@@ -159,20 +159,15 @@ static int exynos_ehci_probe(struct platform_device *pdev)
err = exynos_ehci_get_phy(&pdev->dev, exynos_ehci);
if (err)
- goto fail_clk;
-
- exynos_ehci->clk = devm_clk_get(&pdev->dev, "usbhost");
+ goto fail_io;
+ exynos_ehci->clk = devm_clk_get_enabled(&pdev->dev, "usbhost");
if (IS_ERR(exynos_ehci->clk)) {
- dev_err(&pdev->dev, "Failed to get usbhost clock\n");
- err = PTR_ERR(exynos_ehci->clk);
- goto fail_clk;
+ usb_put_hcd(hcd);
+ return dev_err_probe(&pdev->dev, PTR_ERR(exynos_ehci->clk),
+ "Failed to get usbhost clock\n");
}
- err = clk_prepare_enable(exynos_ehci->clk);
- if (err)
- goto fail_clk;
-
hcd->regs = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
if (IS_ERR(hcd->regs)) {
err = PTR_ERR(hcd->regs);
@@ -223,8 +218,6 @@ static int exynos_ehci_probe(struct platform_device *pdev)
exynos_ehci_phy_disable(&pdev->dev);
pdev->dev.of_node = exynos_ehci->of_node;
fail_io:
- clk_disable_unprepare(exynos_ehci->clk);
-fail_clk:
usb_put_hcd(hcd);
return err;
}
@@ -240,8 +233,6 @@ static void exynos_ehci_remove(struct platform_device *pdev)
exynos_ehci_phy_disable(&pdev->dev);
- clk_disable_unprepare(exynos_ehci->clk);
-
usb_put_hcd(hcd);
}
--
2.44.0
next parent reply other threads:[~2024-04-04 7:14 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20240404071350.4242-1-linux.amoon@gmail.com>
2024-04-04 7:13 ` Anand Moon [this message]
2024-04-04 13:00 ` [PATCH v2 1/6] usb: ehci-exynos: Use devm_clk_get_enabled() helpers Greg Kroah-Hartman
2024-04-04 13:52 ` Anand Moon
2024-04-04 13:54 ` Krzysztof Kozlowski
2024-04-08 10:03 ` Anand Moon
2024-04-04 7:13 ` [PATCH v2 2/6] usb: ehci-exynos: Switch from CONFIG_PM guards to pm_ptr() Anand Moon
2024-04-04 18:26 ` Alan Stern
2024-04-04 7:13 ` [PATCH v2 3/6] usb: ohci-exynos: Use devm_clk_get_enabled() helpers Anand Moon
2024-04-04 7:20 ` Krzysztof Kozlowski
2024-04-04 7:50 ` Anand Moon
2024-04-04 7:13 ` [PATCH v2 4/6] usb: ohci-exynos: Switch from CONFIG_PM guards to pm_ptr() Anand Moon
2024-04-04 18:27 ` Alan Stern
2024-04-04 7:13 ` [PATCH v2 5/6] usb: dwc3: exynos: Use devm_regulator_bulk_get_enable() helper function Anand Moon
2024-04-04 7:23 ` Krzysztof Kozlowski
2024-04-04 7:38 ` Anand Moon
2024-04-04 8:04 ` Krzysztof Kozlowski
2024-04-04 7:13 ` [PATCH v2 6/6] usb: dwc3: exynos: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() Anand Moon
2024-04-09 1:54 ` Thinh Nguyen
2024-04-10 5:17 ` Anand Moon
2024-04-10 23:26 ` Thinh Nguyen
2024-04-11 7:50 ` Anand Moon
2024-04-11 22:21 ` Thinh Nguyen
2024-04-12 5:32 ` Anand Moon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240404071350.4242-2-linux.amoon@gmail.com \
--to=linux.amoon@gmail.com \
--cc=alim.akhtar@samsung.com \
--cc=christophe.jaillet@wanadoo.fr \
--cc=gregkh@linuxfoundation.org \
--cc=johan@kernel.org \
--cc=krzysztof.kozlowski@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=stern@rowland.harvard.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).