[PATCH 2/2] pmdomain: rockchip: Don't log when of_clk_get() fails with -EPROBE_DEFER

From: Yao Zi

Date: Wed Nov 04 2026 - 20:52:50 EST


Current error handling code considers -EPROBE_DEFER as hard errors,
logs misleading dmesg like,

rockchip-pm-domain ff600000.power-management:power-controller: power-domain: failed to get clk at index 0: -517
rockchip-pm-domain ff600000.power-management:power-controller: failed to handle node power-domain: -517

Use dev_err_probe() at the callsite of of_clk_get(), and check for
-EPROBE_DEFER in places where its return value could propagate to.

Fixes: 7c696693a4f5 ("soc: rockchip: power-domain: Add power domain driver")
Fixes: 6be05b5ec161 ("soc: rockchip: power-domain: add support for sub-power domains")
Signed-off-by: Yao Zi <me@xxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
---
drivers/pmdomain/rockchip/pm-domains.c | 22 +++++++++++++---------
1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/drivers/pmdomain/rockchip/pm-domains.c b/drivers/pmdomain/rockchip/pm-domains.c
index 34c862e56aad..c147cc88edb1 100644
--- a/drivers/pmdomain/rockchip/pm-domains.c
+++ b/drivers/pmdomain/rockchip/pm-domains.c
@@ -851,9 +851,9 @@ static int rockchip_pm_add_one_domain(struct rockchip_pmu *pmu,
pd->clks[i].clk = of_clk_get(node, i);
if (IS_ERR(pd->clks[i].clk)) {
error = PTR_ERR(pd->clks[i].clk);
- dev_err(pmu->dev,
- "%pOFn: failed to get clk at index %d: %d\n",
- node, i, error);
+ dev_err_probe(pmu->dev, error,
+ "%pOFn: failed to get clk at index %d: %d\n",
+ node, i, error);
goto err_put_clocks;
}
}
@@ -1006,8 +1006,10 @@ static int rockchip_pm_add_subdomain(struct rockchip_pmu *pmu,

error = rockchip_pm_add_one_domain(pmu, np);
if (error) {
- dev_err(pmu->dev, "failed to handle node %pOFn: %d\n",
- np, error);
+ if (error != -EPROBE_DEFER)
+ dev_err(pmu->dev,
+ "failed to handle node %pOFn: %d\n",
+ np, error);
return error;
}

@@ -1102,15 +1104,17 @@ static int rockchip_pm_domain_probe(struct platform_device *pdev)
for_each_available_child_of_node_scoped(np, node) {
error = rockchip_pm_add_one_domain(pmu, node);
if (error) {
- dev_err(dev, "failed to handle node %pOFn: %d\n",
- node, error);
+ if (error != -EPROBE_DEFER)
+ dev_err(dev, "failed to handle node %pOFn: %d\n",
+ node, error);
goto err_out;
}

error = rockchip_pm_add_subdomain(pmu, node);
if (error < 0) {
- dev_err(dev, "failed to handle subdomain node %pOFn: %d\n",
- node, error);
+ if (error != -EPROBE_DEFER)
+ dev_err(dev, "failed to handle subdomain node %pOFn: %d\n",
+ node, error);
goto err_out;
}
}
--
2.56.0