The clock source for MSM8916 cpu cores is like below.
                        |\
         a53pll --------| \ a53mux     +------+
                        | |------------| cpus |
     gpll0_vote --------| /            +------+
                        |/
So a53mux rather than a53pll is actually the parent clock of cpu cores.
It makes more sense to flag a53mux as critical instead, so that when
either a53pll or gpll0_vote is used by cpu cores, the clock will be kept
enabled while the other can be disabled.
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Link: https://lore.kernel.org/r/20210704024032.11559-2-shawn.guo@linaro.org
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
        init.parent_names = (const char *[]){ "xo" };
        init.num_parents = 1;
        init.ops = &clk_pll_sr2_ops;
-       init.flags = CLK_IS_CRITICAL;
        pll->clkr.hw.init = &init;
 
        ret = devm_clk_register_regmap(dev, &pll->clkr);
 
        init.parent_data = pdata;
        init.num_parents = ARRAY_SIZE(pdata);
        init.ops = &clk_regmap_mux_div_ops;
-       init.flags = CLK_SET_RATE_PARENT;
+       init.flags = CLK_IS_CRITICAL | CLK_SET_RATE_PARENT;
 
        a53cc->clkr.hw.init = &init;
        a53cc->clkr.regmap = regmap;