clk: qcom: cpu-8996: setup PLLs before registering clocks
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Fri, 13 Jan 2023 12:05:38 +0000 (14:05 +0200)
committerBjorn Andersson <andersson@kernel.org>
Thu, 19 Jan 2023 04:50:00 +0000 (22:50 -0600)
Setup all PLLs before registering clocks in the common clock framework.
This ensures that the clocks are not accessed before being setup in the
known way and that the CCF is in sync with the actual HW programming.

Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230113120544.59320-9-dmitry.baryshkov@linaro.org
drivers/clk/qcom/clk-cpu-8996.c

index cc7ece6a77026a91119d10231965dc6ef519c242..5c8e57133dd1f4edda6cbedd7b05130c35b026d3 100644 (file)
@@ -430,6 +430,11 @@ static int qcom_cpu_clk_msm8996_register_clks(struct device *dev,
 {
        int i, ret;
 
+       clk_alpha_pll_configure(&pwrcl_pll, regmap, &hfpll_config);
+       clk_alpha_pll_configure(&perfcl_pll, regmap, &hfpll_config);
+       clk_alpha_pll_configure(&pwrcl_alt_pll, regmap, &altpll_config);
+       clk_alpha_pll_configure(&perfcl_alt_pll, regmap, &altpll_config);
+
        for (i = 0; i < ARRAY_SIZE(cpu_msm8996_hw_clks); i++) {
                ret = devm_clk_hw_register(dev, cpu_msm8996_hw_clks[i]);
                if (ret)
@@ -442,11 +447,6 @@ static int qcom_cpu_clk_msm8996_register_clks(struct device *dev,
                        return ret;
        }
 
-       clk_alpha_pll_configure(&pwrcl_pll, regmap, &hfpll_config);
-       clk_alpha_pll_configure(&perfcl_pll, regmap, &hfpll_config);
-       clk_alpha_pll_configure(&pwrcl_alt_pll, regmap, &altpll_config);
-       clk_alpha_pll_configure(&perfcl_alt_pll, regmap, &altpll_config);
-
        /* Enable alt PLLs */
        clk_prepare_enable(pwrcl_alt_pll.clkr.hw.clk);
        clk_prepare_enable(perfcl_alt_pll.clkr.hw.clk);