From: Sean Anderson Date: Fri, 9 Apr 2021 02:13:05 +0000 (-0400) Subject: clk: k210: Fix PLL enable always getting taken X-Git-Url: http://git.dujemihanovic.xyz/?a=commitdiff_plain;h=598a06dcb47db8101a19d26c0d65572fbe8e71f6;p=u-boot.git clk: k210: Fix PLL enable always getting taken This conditional always evaluated as false, regardless of the value of reg. Fix it so that it properly tests the bits in the PLL register. Also test PLL_EN, now that we set it. Reported-by: Damien Le Moal Signed-off-by: Sean Anderson --- diff --git a/drivers/clk/kendryte/pll.c b/drivers/clk/kendryte/pll.c index f198920113..d46fd0ebbf 100644 --- a/drivers/clk/kendryte/pll.c +++ b/drivers/clk/kendryte/pll.c @@ -512,7 +512,8 @@ static int k210_pll_enable(struct clk *clk) struct k210_pll *pll = to_k210_pll(clk); u32 reg = readl(pll->reg); - if ((reg | K210_PLL_PWRD) && !(reg | K210_PLL_RESET)) + if ((reg & K210_PLL_PWRD) && (reg & K210_PLL_EN) && + !(reg & K210_PLL_RESET)) return 0; reg |= K210_PLL_PWRD;