hwrng: meson - Improve error handling for core clock

-ENOENT (ie. "there is no clock") is fine to ignore for an optional
clock, other values are not supposed to be ignored and should be
escalated to the caller (e.g. -EPROBE_DEFER). Ignore -ENOENT by using
devm_clk_get_optional().

While touching this code also add an error message for the fatal errors.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
Uwe Kleine-König 2021-09-20 09:44:05 +02:00 committed by Herbert Xu
parent adad556efc
commit f7324d4ba9
1 changed files with 3 additions and 2 deletions

View File

@ -54,9 +54,10 @@ static int meson_rng_probe(struct platform_device *pdev)
if (IS_ERR(data->base)) if (IS_ERR(data->base))
return PTR_ERR(data->base); return PTR_ERR(data->base);
data->core_clk = devm_clk_get(dev, "core"); data->core_clk = devm_clk_get_optional(dev, "core");
if (IS_ERR(data->core_clk)) if (IS_ERR(data->core_clk))
data->core_clk = NULL; return dev_err_probe(dev, PTR_ERR(data->core_clk),
"Failed to get core clock\n");
if (data->core_clk) { if (data->core_clk) {
ret = clk_prepare_enable(data->core_clk); ret = clk_prepare_enable(data->core_clk);