[PATCH 09/24] clk: Remove negative error returns from clk_get_rate
    Andrew Goodbody 
    andrew.goodbody at linaro.org
       
    Wed Oct 15 16:32:14 CEST 2025
    
    
  
clk_get_rate() returns a ulong so do not attempt to pass negative error
codes through it.
Signed-off-by: Andrew Goodbody <andrew.goodbody at linaro.org>
---
 drivers/clk/clk-hsdk-cgu.c     |  2 +-
 drivers/clk/clk-uclass.c       |  4 ++--
 drivers/clk/clk_fixed_factor.c |  4 ++--
 drivers/clk/clk_k210.c         |  6 +++---
 drivers/clk/clk_sandbox.c      |  4 ++--
 drivers/clk/clk_scmi.c         |  4 ++--
 drivers/clk/clk_vexpress_osc.c |  2 +-
 drivers/clk/clk_zynq.c         |  4 ++--
 drivers/clk/clk_zynqmp.c       | 40 ++++++++++++++++++++--------------------
 9 files changed, 35 insertions(+), 35 deletions(-)
diff --git a/drivers/clk/clk-hsdk-cgu.c b/drivers/clk/clk-hsdk-cgu.c
index 53655059279e51d91b4fb81e43ca444c078cb956..5ec90cfa87156a401ee22ff7248d1f699e340ccd 100644
--- a/drivers/clk/clk-hsdk-cgu.c
+++ b/drivers/clk/clk-hsdk-cgu.c
@@ -703,7 +703,7 @@ static ulong hsdk_cgu_get_rate(struct clk *sclk)
 	struct hsdk_cgu_clk *clk = dev_get_priv(sclk->dev);
 
 	if (hsdk_prepare_clock_tree_branch(sclk))
-		return -EINVAL;
+		return 0;
 
 	return clk->map[sclk->id].get_rate(sclk);
 }
diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c
index 3dbe1ce9441ca513d41be90520ff175c96b4253a..b2d5b883ad6fdbdc7d0b15d928a5b990193360c9 100644
--- a/drivers/clk/clk-uclass.c
+++ b/drivers/clk/clk-uclass.c
@@ -525,11 +525,11 @@ ulong clk_get_parent_rate(struct clk *clk)
 
 	pclk = clk_get_parent(clk);
 	if (IS_ERR(pclk))
-		return -ENODEV;
+		return 0;
 
 	ops = clk_dev_ops(pclk->dev);
 	if (!ops->get_rate)
-		return -ENOSYS;
+		return 0;
 
 	/* Read the 'rate' if not already set or if proper flag set*/
 	if (!pclk->rate || pclk->flags & CLK_GET_RATE_NOCACHE)
diff --git a/drivers/clk/clk_fixed_factor.c b/drivers/clk/clk_fixed_factor.c
index 1d740cf49f6277233f8403f85ab78daeae904c28..36fcecc44cb2aa4c9f0760156fc3f38e3cf14f65 100644
--- a/drivers/clk/clk_fixed_factor.c
+++ b/drivers/clk/clk_fixed_factor.c
@@ -28,8 +28,8 @@ static ulong clk_fixed_factor_get_rate(struct clk *clk)
 	struct clk_fixed_factor *ff = to_clk_fixed_factor(clk->dev);
 
 	rate = clk_get_rate(&ff->parent);
-	if (IS_ERR_VALUE(rate))
-		return rate;
+	if (!rate)
+		return 0;
 
 	do_div(rate, ff->div);
 
diff --git a/drivers/clk/clk_k210.c b/drivers/clk/clk_k210.c
index d1a6cde8f0f8e8ad52873caa9b52d30435d472f5..52667f02e1c172b1f150a965f71fe961dab096b4 100644
--- a/drivers/clk/clk_k210.c
+++ b/drivers/clk/clk_k210.c
@@ -1049,8 +1049,8 @@ static ulong do_k210_clk_get_rate(struct k210_clk_priv *priv, int id)
 
 	parent = k210_clk_get_parent(priv, id);
 	parent_rate = do_k210_clk_get_rate(priv, parent);
-	if (IS_ERR_VALUE(parent_rate))
-		return parent_rate;
+	if (!parent_rate)
+		return 0;
 
 	if (k210_clks[id].flags & K210_CLKF_PLL)
 		return k210_pll_get_rate(priv, k210_clks[id].pll, parent_rate);
@@ -1075,7 +1075,7 @@ static ulong do_k210_clk_get_rate(struct k210_clk_priv *priv, int id)
 		return parent_rate / (2 << val);
 	default:
 		assert(false);
-		return -EINVAL;
+		return 0;
 	};
 }
 
diff --git a/drivers/clk/clk_sandbox.c b/drivers/clk/clk_sandbox.c
index c8c5a88c52d985632733030b0cb92970920a5fc5..722e1d7133b60887bb302d25ac34065ba9ebccfb 100644
--- a/drivers/clk/clk_sandbox.c
+++ b/drivers/clk/clk_sandbox.c
@@ -16,10 +16,10 @@ static ulong sandbox_clk_get_rate(struct clk *clk)
 	ulong id = clk_get_id(clk);
 
 	if (!priv->probed)
-		return -ENODEV;
+		return 0;
 
 	if (id >= SANDBOX_CLK_ID_COUNT)
-		return -EINVAL;
+		return 0;
 
 	return priv->rate[id];
 }
diff --git a/drivers/clk/clk_scmi.c b/drivers/clk/clk_scmi.c
index a7d89f32cd7c97a0ede1995612ce0b7302d06392..93ca81f7c008eb5da860ef22285f8adb81849872 100644
--- a/drivers/clk/clk_scmi.c
+++ b/drivers/clk/clk_scmi.c
@@ -211,11 +211,11 @@ static ulong scmi_clk_get_rate(struct clk *clk)
 
 	ret = devm_scmi_process_msg(clk->dev, &msg);
 	if (ret < 0)
-		return ret;
+		return 0;
 
 	ret = scmi_to_linux_errno(out.status);
 	if (ret < 0)
-		return ret;
+		return 0;
 
 	return (ulong)(((u64)out.rate_msb << 32) | out.rate_lsb);
 }
diff --git a/drivers/clk/clk_vexpress_osc.c b/drivers/clk/clk_vexpress_osc.c
index 85ac92c908a7382963cf861252211d597cfddbe8..79ff003aa8f623142e3ec05098fdd1a10610f4fb 100644
--- a/drivers/clk/clk_vexpress_osc.c
+++ b/drivers/clk/clk_vexpress_osc.c
@@ -32,7 +32,7 @@ static ulong vexpress_osc_clk_get_rate(struct clk *clk)
 	data = CLK_FUNCTION | priv->osc;
 	err = misc_read(vexpress_cfg, 0, &data, sizeof(data));
 	if (err < 0)
-		return err;
+		return 0;
 
 	return data;
 }
diff --git a/drivers/clk/clk_zynq.c b/drivers/clk/clk_zynq.c
index a8505f62bbadf917254f8098a3565654db0511c4..ca5c476f1a811356555e96e0f95b988a76f197cb 100644
--- a/drivers/clk/clk_zynq.c
+++ b/drivers/clk/clk_zynq.c
@@ -283,7 +283,7 @@ static ulong zynq_clk_get_gem_rate(struct zynq_clk_priv *priv, enum zynq_clk id)
 	debug("%s: gem%d emio rx clock source unknown\n", __func__,
 	      id - gem0_clk);
 
-	return -ENOSYS;
+	return 0;
 }
 
 static unsigned long zynq_clk_calc_peripheral_two_divs(ulong rate,
@@ -398,7 +398,7 @@ static ulong zynq_clk_get_rate(struct clk *clk)
 	case usb0_aper_clk ... swdt_clk:
 		return zynq_clk_get_cpu_rate(priv, cpu_1x_clk);
 	default:
-		return -ENXIO;
+		return 0;
 	}
 }
 
diff --git a/drivers/clk/clk_zynqmp.c b/drivers/clk/clk_zynqmp.c
index 7a433a667a49510ccaf712fa97ad4386634a85e6..ceaedd074f10ea0fb0f6acd27f17a0d953c86cd4 100644
--- a/drivers/clk/clk_zynqmp.c
+++ b/drivers/clk/clk_zynqmp.c
@@ -382,7 +382,7 @@ static ulong zynqmp_clk_get_pll_rate(struct zynqmp_clk_priv *priv,
 	ret = zynqmp_mmio_read(zynqmp_clk_get_register(id), &clk_ctrl);
 	if (ret) {
 		printf("%s mio read fail\n", __func__);
-		return -EIO;
+		return 0;
 	}
 
 	if (clk_ctrl & PLLCTRL_BYPASS_MASK)
@@ -409,7 +409,7 @@ static ulong zynqmp_clk_get_pll_rate(struct zynqmp_clk_priv *priv,
 		ret = zynqmp_mmio_read(dpll_lpd_reg, &cross_div);
 		if (ret) {
 			printf("%s mio read fail\n", __func__);
-			return -EIO;
+			return 0;
 		}
 
 		cross_div = (cross_div & PLL_TO_LPD_DIV_MASK) >>
@@ -431,7 +431,7 @@ static ulong zynqmp_clk_get_cpu_rate(struct zynqmp_clk_priv *priv,
 	ret = zynqmp_mmio_read(CRF_APB_ACPU_CTRL, &clk_ctrl);
 	if (ret) {
 		printf("%s mio read fail\n", __func__);
-		return -EIO;
+		return 0;
 	}
 
 	div = (clk_ctrl & CLK_CTRL_DIV0_MASK) >> CLK_CTRL_DIV0_SHIFT;
@@ -439,8 +439,8 @@ static ulong zynqmp_clk_get_cpu_rate(struct zynqmp_clk_priv *priv,
 	srcsel = clk_ctrl & CLK_CTRL_SRCSEL_MASK;
 	pll = pll_src[ACPU_CLK_SRC][srcsel];
 	pllrate = zynqmp_clk_get_pll_rate(priv, pll);
-	if (IS_ERR_VALUE(pllrate))
-		return pllrate;
+	if (!pllrate)
+		return 0;
 
 	return DIV_ROUND_CLOSEST(pllrate, div);
 }
@@ -455,7 +455,7 @@ static ulong zynqmp_clk_get_ddr_rate(struct zynqmp_clk_priv *priv)
 	ret = zynqmp_mmio_read(CRF_APB_DDR_CTRL, &clk_ctrl);
 	if (ret) {
 		printf("%s mio read fail\n", __func__);
-		return -EIO;
+		return 0;
 	}
 
 	div = (clk_ctrl & CLK_CTRL_DIV0_MASK) >> CLK_CTRL_DIV0_SHIFT;
@@ -463,8 +463,8 @@ static ulong zynqmp_clk_get_ddr_rate(struct zynqmp_clk_priv *priv)
 	srcsel = clk_ctrl & CLK_CTRL_SRCSEL_MASK;
 	pll = pll_src[DDR_CLK_SRC][srcsel];
 	pllrate = zynqmp_clk_get_pll_rate(priv, pll);
-	if (IS_ERR_VALUE(pllrate))
-		return pllrate;
+	if (!pllrate)
+		return 0;
 
 	return DIV_ROUND_CLOSEST(pllrate, div);
 }
@@ -479,14 +479,14 @@ static ulong zynqmp_clk_get_dll_rate(struct zynqmp_clk_priv *priv)
 	ret = zynqmp_mmio_read(CRL_APB_DLL_REF_CTRL, &clk_ctrl);
 	if (ret) {
 		printf("%s mio read fail\n", __func__);
-		return -EIO;
+		return 0;
 	}
 
 	srcsel = clk_ctrl & CLK_CTRL_SRCSEL_MASK;
 	pll = pll_src[DLL_CLK_SRC][srcsel];
 	pllrate = zynqmp_clk_get_pll_rate(priv, pll);
-	if (IS_ERR_VALUE(pllrate))
-		return pllrate;
+	if (!pllrate)
+		return 0;
 
 	return pllrate;
 }
@@ -503,7 +503,7 @@ static ulong zynqmp_clk_get_peripheral_rate(struct zynqmp_clk_priv *priv,
 	ret = zynqmp_mmio_read(zynqmp_clk_get_register(id), &clk_ctrl);
 	if (ret) {
 		printf("%s mio read fail\n", __func__);
-		return -EIO;
+		return 0;
 	}
 
 	div0 = (clk_ctrl & CLK_CTRL_DIV0_MASK) >> CLK_CTRL_DIV0_SHIFT;
@@ -523,8 +523,8 @@ static ulong zynqmp_clk_get_peripheral_rate(struct zynqmp_clk_priv *priv,
 		pll = pll_src[PERI_CLK_SRC][srcsel];
 
 	pllrate = zynqmp_clk_get_pll_rate(priv, pll);
-	if (IS_ERR_VALUE(pllrate))
-		return pllrate;
+	if (!pllrate)
+		return 0;
 
 	return
 		DIV_ROUND_CLOSEST(
@@ -543,7 +543,7 @@ static ulong zynqmp_clk_get_crf_crl_rate(struct zynqmp_clk_priv *priv,
 	ret = zynqmp_mmio_read(zynqmp_clk_get_register(id), &clk_ctrl);
 	if (ret) {
 		printf("%d %s mio read fail\n", __LINE__, __func__);
-		return -EIO;
+		return 0;
 	}
 
 	div0 = (clk_ctrl & CLK_CTRL_DIV0_MASK) >> CLK_CTRL_DIV0_SHIFT;
@@ -586,13 +586,13 @@ static ulong zynqmp_clk_get_crf_crl_rate(struct zynqmp_clk_priv *priv,
 		pll = pll_src[CPU_R5_CLK_SRC][srcsel];
 		break;
 	default:
-		return -ENXIO;
+		return 0;
 	}
 	if (two_divs) {
 		ret = zynqmp_mmio_read(zynqmp_clk_get_register(pll), &clk_ctrl);
 		if (ret) {
 			printf("%d %s mio read fail\n", __LINE__, __func__);
-			return -EIO;
+			return 0;
 		}
 		div1 = (clk_ctrl & CLK_CTRL_DIV0_MASK) >> CLK_CTRL_DIV0_SHIFT;
 		if (!div1)
@@ -603,8 +603,8 @@ static ulong zynqmp_clk_get_crf_crl_rate(struct zynqmp_clk_priv *priv,
 		pll = iopll;
 
 	pllrate = zynqmp_clk_get_pll_rate(priv, pll);
-	if (IS_ERR_VALUE(pllrate))
-		return pllrate;
+	if (!pllrate)
+		return 0;
 
 	return
 		DIV_ROUND_CLOSEST(
@@ -729,7 +729,7 @@ static ulong zynqmp_clk_get_rate(struct clk *clk)
 	case gdma_ref ... dpdma_ref:
 		return zynqmp_clk_get_crf_crl_rate(priv, id, two_divs);
 	default:
-		return -ENXIO;
+		return 0;
 	}
 }
 
-- 
2.47.3
    
    
More information about the U-Boot
mailing list