[PATCH v2] clk: imx8qxp: Defer instead of failing probe
From: Diogo Manuel Pais Silva
Date: Tue Jul 02 2024 - 04:10:56 EST
When of_clk_parent_fill is ran without all the parent clocks having been probed then the probe function will return -EINVAL, making it so that the probe isn't attempted again. As fw_devlink is on by default this does not usually happen, but if fw_devlink is disabled then it is very possible that the parent clock will be probed after the lpcg first attempt.
Signed-off-by: Diogo Silva <diogo.pais@xxxxxxxxxxxxx>
---
v2: change from dev_warn to dev_err_probe
---
drivers/clk/imx/clk-imx8qxp-lpcg.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/clk/imx/clk-imx8qxp-lpcg.c b/drivers/clk/imx/clk-imx8qxp-lpcg.c
index d0ccaa040225..7bd9b745edbe 100644
--- a/drivers/clk/imx/clk-imx8qxp-lpcg.c
+++ b/drivers/clk/imx/clk-imx8qxp-lpcg.c
@@ -225,8 +225,8 @@ static int imx_lpcg_parse_clks_from_dt(struct platform_device *pdev,
ret = of_clk_parent_fill(np, parent_names, count);
if (ret != count) {
- dev_err(&pdev->dev, "failed to get clock parent names\n");
- return count;
+ return dev_err_probe(&pdev->dev, -EPROBE_DEFER,
+ "failed to get all clock parent names\n");
}
ret = of_property_read_string_array(np, "clock-output-names",
--
2.34.1