[PATCH] pmdomain: bcm: bcm2835-power: Use devm_clk_get_optional
Ulf Hansson
ulf.hansson at linaro.org
Thu Apr 24 09:57:14 PDT 2025
On Tue, 15 Apr 2025 at 21:07, Stefan Wahren <wahrenst at gmx.net> wrote:
>
> The driver tries to implement optional clock handling with devm_clk_get.
> It treats all errors except EPROBE_DEFER as a missing clock, which is
> not correct. So use devm_clk_get_optional here and get the corner-cases
> right.
>
> Signed-off-by: Stefan Wahren <wahrenst at gmx.net>
Applied for next, thanks!
Kind regards
Uffe
> ---
> drivers/pmdomain/bcm/bcm2835-power.c | 16 ++++------------
> 1 file changed, 4 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/pmdomain/bcm/bcm2835-power.c b/drivers/pmdomain/bcm/bcm2835-power.c
> index d3cd816979ac..f5289fd184d0 100644
> --- a/drivers/pmdomain/bcm/bcm2835-power.c
> +++ b/drivers/pmdomain/bcm/bcm2835-power.c
> @@ -506,18 +506,10 @@ bcm2835_init_power_domain(struct bcm2835_power *power,
> struct device *dev = power->dev;
> struct bcm2835_power_domain *dom = &power->domains[pd_xlate_index];
>
> - dom->clk = devm_clk_get(dev->parent, name);
> - if (IS_ERR(dom->clk)) {
> - int ret = PTR_ERR(dom->clk);
> -
> - if (ret == -EPROBE_DEFER)
> - return ret;
> -
> - /* Some domains don't have a clk, so make sure that we
> - * don't deref an error pointer later.
> - */
> - dom->clk = NULL;
> - }
> + dom->clk = devm_clk_get_optional(dev->parent, name);
> + if (IS_ERR(dom->clk))
> + return dev_err_probe(dev, PTR_ERR(dom->clk), "Failed to get clock %s\n",
> + name);
>
> dom->base.name = name;
> dom->base.flags = GENPD_FLAG_ACTIVE_WAKEUP;
> --
> 2.34.1
>
More information about the linux-arm-kernel
mailing list