From: Heiner Kallweit Date: Mon, 29 Aug 2022 18:52:59 +0000 (+0200) Subject: clk: meson: pll: adjust timeout in meson_clk_pll_wait_lock() X-Git-Tag: v6.6.7~3926^2~2^4^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=19648dddb14bdb722e83ab1dc8a54525c9846600;p=platform%2Fkernel%2Flinux-starfive.git clk: meson: pll: adjust timeout in meson_clk_pll_wait_lock() Currently we loop over meson_parm_read() up to 24mln times. This results in a unpredictable timeout period. In my case it's over 5s on a S905X4-based system. Make the timeout period predictable and set it to 100ms. Signed-off-by: Heiner Kallweit Signed-off-by: Jerome Brunet Link: https://lore.kernel.org/r/a801afc0-a8f2-a0a4-0f2b-a7201351d563@gmail.com --- diff --git a/drivers/clk/meson/clk-pll.c b/drivers/clk/meson/clk-pll.c index 9e55617bc..f7b59f7 100644 --- a/drivers/clk/meson/clk-pll.c +++ b/drivers/clk/meson/clk-pll.c @@ -277,15 +277,15 @@ static int meson_clk_pll_wait_lock(struct clk_hw *hw) { struct clk_regmap *clk = to_clk_regmap(hw); struct meson_clk_pll_data *pll = meson_clk_pll_data(clk); - int delay = 24000000; + int delay = 5000; do { - /* Is the clock locked now ? */ + /* Is the clock locked now ? Time out after 100ms. */ if (meson_parm_read(clk->map, &pll->l)) return 0; - delay--; - } while (delay > 0); + udelay(20); + } while (--delay); return -ETIMEDOUT; }