On Mon, Jul 22, 2024 at 11:24:33AM +0300, Dmitry Baryshkov wrote: > On Mon, Jul 22, 2024 at 11:25:37AM GMT, Varadarajan Narayanan wrote: > > gcc_qdss_tsctr_clk_src (enabled in the boot loaders and dependent > > on gpll4_main) was not registered as one of the ipq5332 clocks. > > Hence clk_disable_unused() disabled 'gpll4_main' assuming there > > were no consumers for 'gpll4_main' resulting in system freeze or > > reboots. > > > > After registering gcc_qdss_tsctr_clk_src, CLK_IGNORE_UNUSED can > > be removed from gpll4_main. > > Commented below. > > > > > Signed-off-by: Varadarajan Narayanan <quic_varada@xxxxxxxxxxx> > > Fixes? Will add that. Was hesitant to add as it would point to the approx 3800 line commit (3d89d52970fd) that introduced the gcc-ipq5332.c file. > > --- > > drivers/clk/qcom/gcc-ipq5332.c | 12 +----------- > > 1 file changed, 1 insertion(+), 11 deletions(-) > > > > diff --git a/drivers/clk/qcom/gcc-ipq5332.c b/drivers/clk/qcom/gcc-ipq5332.c > > index f98591148a97..237b6a766179 100644 > > --- a/drivers/clk/qcom/gcc-ipq5332.c > > +++ b/drivers/clk/qcom/gcc-ipq5332.c > > @@ -126,17 +126,6 @@ static struct clk_alpha_pll gpll4_main = { > > .parent_data = &gcc_parent_data_xo, > > .num_parents = 1, > > .ops = &clk_alpha_pll_stromer_ops, > > - /* > > - * There are no consumers for this GPLL in kernel yet, > > - * (will be added soon), so the clock framework > > - * disables this source. But some of the clocks > > - * initialized by boot loaders uses this source. So we > > - * need to keep this clock ON. Add the > > - * CLK_IGNORE_UNUSED flag so the clock will not be > > - * disabled. Once the consumer in kernel is added, we > > - * can get rid of this flag. > > - */ > > - .flags = CLK_IGNORE_UNUSED, > > You can't drop it in this patch, since GPLL4 still can get disabled if > GCC_QDSS_TSCTR_CLK_SRC gets disabled. This chunk should go to the next > patch (or you should reorder the patches). Ok, will move the above chunk to next patch. Thanks Varada > > }, > > }, > > }; > > @@ -3388,6 +3377,7 @@ static struct clk_regmap *gcc_ipq5332_clocks[] = { > > [GCC_QDSS_DAP_DIV_CLK_SRC] = &gcc_qdss_dap_div_clk_src.clkr, > > [GCC_QDSS_ETR_USB_CLK] = &gcc_qdss_etr_usb_clk.clkr, > > [GCC_QDSS_EUD_AT_CLK] = &gcc_qdss_eud_at_clk.clkr, > > + [GCC_QDSS_TSCTR_CLK_SRC] = &gcc_qdss_tsctr_clk_src.clkr, > > [GCC_QPIC_AHB_CLK] = &gcc_qpic_ahb_clk.clkr, > > [GCC_QPIC_CLK] = &gcc_qpic_clk.clkr, > > [GCC_QPIC_IO_MACRO_CLK] = &gcc_qpic_io_macro_clk.clkr, > > -- > > 2.34.1 > > > > -- > With best wishes > Dmitry