memory: stm32_omm: Fix error handling in stm32_omm_configure()

There are two error handling bugs in the stm32_omm_configure() function.
1) The error code needs to be set if clk_get_rate() fails.
2) If devm_reset_control_get_exclusive() then call
   pm_runtime_put_sync_suspend() before returning.

Fixes: 8181d061dc ("memory: Add STM32 Octo Memory Manager driver")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Link: https://lore.kernel.org/r/a69ce0445324e994ea2ed7493bda1f6046c7ff69.1746781081.git.dan.carpenter@linaro.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
This commit is contained in:
Dan Carpenter 2025-05-09 14:04:31 +03:00 committed by Krzysztof Kozlowski
parent 9c03507fcd
commit d44eeb20d9
1 changed files with 5 additions and 2 deletions

View File

@ -222,6 +222,7 @@ static int stm32_omm_configure(struct device *dev)
clk_rate = clk_get_rate(omm->clk_bulk[i].clk);
if (!clk_rate) {
dev_err(dev, "Invalid clock rate\n");
ret = -EINVAL;
goto error;
}
@ -230,8 +231,10 @@ static int stm32_omm_configure(struct device *dev)
}
rstc = devm_reset_control_get_exclusive(dev, "omm");
if (IS_ERR(rstc))
return dev_err_probe(dev, PTR_ERR(rstc), "reset get failed\n");
if (IS_ERR(rstc)) {
ret = dev_err_probe(dev, PTR_ERR(rstc), "reset get failed\n");
goto error;
}
reset_control_assert(rstc);
udelay(2);