Re: [PATCH v2] gpio: mvebu: Fix optional clock enable handling

Bartosz Golaszewski <[email protected]>
Newsgroups org.kernel.vger.linux-gpio,org.kernel.vger.linux-kernel
Message-ID <CAMRc=Me4dhtt2YNKo-jncSa0j0254eFKRP-3G5oiV4OfzYfb8Q@mail.gmail.com>
On Sun, 2 Aug 2026 00:10:08 +0200, Yuho Choi <[email protected]> said:
> mvebu_gpio_probe() ignores clk_prepare_enable() failures and has no
> matching disable path for later probe failures.
>
> Use devm_clk_get_optional_enabled() so clock lookup and enable failures
> are reported, and so devres disables the clock on cleanup.
>
> Fixes: de88747f514a ("gpio: mvebu: Add clk support to prevent lockup")
>

No blank line here please.

> Signed-off-by: Yuho Choi <[email protected]>

You should also explain that the binding for this chip does not describe the
clocks as required so using the optional variant is actually a fix as well.

Bart

> ---
>  drivers/gpio/gpio-mvebu.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c
> index a010604e5ff7..095881603b75 100644
> --- a/drivers/gpio/gpio-mvebu.c
> +++ b/drivers/gpio/gpio-mvebu.c
> @@ -1153,10 +1153,11 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
>  		return id;
>  	}
>
> -	mvchip->clk = devm_clk_get(&pdev->dev, NULL);
> +	mvchip->clk = devm_clk_get_optional_enabled(&pdev->dev, NULL);
>  	/* Not all SoCs require a clock.*/
> -	if (!IS_ERR(mvchip->clk))
> -		clk_prepare_enable(mvchip->clk);
> +
> +	if (IS_ERR(mvchip->clk))
> +		return PTR_ERR(mvchip->clk);
>
>  	mvchip->soc_variant = soc_variant;
>  	mvchip->chip.label = dev_name(&pdev->dev);
> --
> 2.43.0
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.