diff --git a/drivers/clk/qcom/clk-alpha-pll.c b/drivers/clk/qcom/clk-alpha-pll.c index 74ef4b136a65..79f15e28481f 100644 --- a/drivers/clk/qcom/clk-alpha-pll.c +++ b/drivers/clk/qcom/clk-alpha-pll.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-2.0 /* * Copyright (c) 2015, 2018-2021, The Linux Foundation. All rights reserved. - * Copyright (c) 2021, Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2021-2022, Qualcomm Innovation Center, Inc. All rights reserved. */ #include @@ -3009,6 +3009,10 @@ int clk_lucid_evo_pll_configure(struct clk_alpha_pll *pll, { int ret; + ret = regmap_update_bits(regmap, PLL_USER_CTL(pll), PLL_OUT_MASK, PLL_OUT_MASK); + if (ret) + return ret; + ret = trion_pll_is_enabled(pll, regmap); if (ret) return ret; @@ -3130,11 +3134,6 @@ static int alpha_pll_lucid_evo_enable(struct clk_hw *hw) if (ret) return ret; - /* Enable the PLL outputs */ - ret = regmap_update_bits(regmap, PLL_USER_CTL(pll), PLL_OUT_MASK, PLL_OUT_MASK); - if (ret) - return ret; - /* Enable the global PLL outputs */ ret = regmap_update_bits(regmap, PLL_MODE(pll), PLL_OUTCTRL, PLL_OUTCTRL); if (ret) @@ -3167,11 +3166,6 @@ static void alpha_pll_lucid_evo_disable(struct clk_hw *hw) if (ret) return; - /* Disable the PLL outputs */ - ret = regmap_update_bits(regmap, PLL_USER_CTL(pll), PLL_OUT_MASK, 0); - if (ret) - return; - /* Place the PLL mode in STANDBY */ regmap_write(pll->clkr.regmap, PLL_OPMODE(pll), PLL_STANDBY);