diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c index 5bce976b060..9d052e5a814 100644 --- a/drivers/clk/clk-uclass.c +++ b/drivers/clk/clk-uclass.c @@ -520,7 +520,8 @@ ulong clk_get_parent_rate(struct clk *clk) return -ENOSYS; /* Read the 'rate' if not already set or if proper flag set*/ - if (!pclk->rate || pclk->flags & CLK_GET_RATE_NOCACHE) + if (!pclk->rate || IS_ERR_VALUE(pclk->rate) || + pclk->flags & CLK_GET_RATE_NOCACHE) pclk->rate = clk_get_rate(pclk); return pclk->rate;