[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAKd8=GucMNr2s7ci7TbA7_kwQ8AwwNGWV-Aobeqa_anouEk=rA@mail.gmail.com>
Date: Tue, 21 Jan 2025 13:00:24 +0100
From: Lars Pedersen <lapeddk@...il.com>
To: Mark Brown <broonie@...nel.org>
Cc: Purushothama Siddaiah <psiddaiah@...sta.com>, Corey Minyard <cminyard@...sta.com>, linux-spi@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] spi: omap2-mcspi: Correctly handle devm_clk_get_optional()
errors
On Fri, 17 Jan 2025 at 17:16, Mark Brown <broonie@...nel.org> wrote:
>
> devm_clk_get_optional() returns NULL for missing clocks and a PTR_ERR()
> if there is a clock but we fail to get it, but currently we only handle
> the latter case and do so as though the clock was missing. If we get an
> error back we should handle that as an error since the clock exists but
> we failed to get it, if we get NULL then the clock doesn't exist and we
> should handle that.
Hi Mark.
I have now tested the patch on our board and everything now works as
expected. Thanks!
Tested-by: Lars Pedersen <lapeddk@...il.com>
>
> Fixes: 4c6ac5446d06 ("spi: omap2-mcspi: Fix the IS_ERR() bug for devm_clk_get_optional_enabled()")
> Reported-by: Lars Pedersen <lapeddk@...il.com>
> Signed-off-by: Mark Brown <broonie@...nel.org>
> ---
> drivers/spi/spi-omap2-mcspi.c | 11 ++++++++---
> 1 file changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c
> index add6247d348190452918900b145c3c5a00e409b3..29c616e2c408cf26b150a853f789128d003db1f0 100644
> --- a/drivers/spi/spi-omap2-mcspi.c
> +++ b/drivers/spi/spi-omap2-mcspi.c
> @@ -1561,10 +1561,15 @@ static int omap2_mcspi_probe(struct platform_device *pdev)
> }
>
> mcspi->ref_clk = devm_clk_get_optional_enabled(&pdev->dev, NULL);
> - if (IS_ERR(mcspi->ref_clk))
> - mcspi->ref_clk_hz = OMAP2_MCSPI_MAX_FREQ;
> - else
> + if (IS_ERR(mcspi->ref_clk)) {
> + status = PTR_ERR(mcspi->ref_clk);
> + dev_err_probe(&pdev->dev, status, "Failed to get ref_clk");
> + goto free_ctlr;
> + }
> + if (mcspi->ref_clk)
> mcspi->ref_clk_hz = clk_get_rate(mcspi->ref_clk);
> + else
> + mcspi->ref_clk_hz = OMAP2_MCSPI_MAX_FREQ;
> ctlr->max_speed_hz = mcspi->ref_clk_hz;
> ctlr->min_speed_hz = mcspi->ref_clk_hz >> 15;
>
>
> ---
> base-commit: 9d89551994a430b50c4fffcb1e617a057fa76e20
> change-id: 20250116-spi-fix-omap2-optional-84aa541869e6
>
> Best regards,
> --
> Mark Brown <broonie@...nel.org>
>
Powered by blists - more mailing lists