On Sun, Feb 1, 2015 at 11:18 PM, Mike Turquette <mturquette@xxxxxxxxxx> wrote: > Quoting Tomeu Vizoso (2015-01-31 10:36:22) >> On 31 January 2015 at 02:31, Stephen Boyd <sboyd@xxxxxxxxxxxxxx> wrote: >> > On 01/29, Stephen Boyd wrote: >> >> On 01/29/15 05:31, Geert Uytterhoeven wrote: >> >> > Hi Tomeu, Mike, >> >> > >> >> > On Fri, Jan 23, 2015 at 12:03 PM, Tomeu Vizoso >> >> > <tomeu.vizoso@xxxxxxxxxxxxx> wrote: >> >> >> --- a/drivers/clk/clk.c >> >> >> +++ b/drivers/clk/clk.c >> >> >> @@ -2391,25 +2543,24 @@ int __clk_get(struct clk *clk) >> >> >> return 1; >> >> >> } >> >> >> >> >> >> -static void clk_core_put(struct clk_core *core) >> >> >> +void __clk_put(struct clk *clk) >> >> >> { >> >> >> struct module *owner; >> >> >> >> >> >> - owner = core->owner; >> >> >> + if (!clk || WARN_ON_ONCE(IS_ERR(clk))) >> >> >> + return; >> >> >> >> >> >> clk_prepare_lock(); >> >> >> - kref_put(&core->ref, __clk_release); >> >> >> + >> >> >> + hlist_del(&clk->child_node); >> >> >> + clk_core_set_rate_nolock(clk->core, clk->core->req_rate); >> >> > At this point, clk->core->req_rate is still zero, causing >> >> > cpg_div6_clock_round_rate() to be called with a zero "rate" parameter, >> >> > e.g. on r8a7791: >> >> >> >> Hmm.. I wonder if we should assign core->req_rate to be the same as >> >> core->rate during __clk_init()? That would make this call to >> >> clk_core_set_rate_nolock() a nop in this case. >> >> >> > >> > Here's a patch to do this >> > >> > ---8<---- >> > From: Stephen Boyd <sboyd@xxxxxxxxxxxxxx> >> > Subject: [PATCH] clk: Assign a requested rate by default >> > >> > We need to assign a requested rate here so that we avoid >> > requesting a rate of 0 on clocks when we remove clock consumers. >> >> Hi, this looks good to me. >> >> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@xxxxxxxxxxxxx> > > It seems to fix the total boot failure on OMAPs, and hopefully does the > same for SH Mobile and others. I've squashed this into Tomeu's rate > constraints patch to maintain bisect. Yes, it fixes shmobile. .round_rate() is now called with a sane value of rate. Thanks! Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds