Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932931AbbBBIAF (ORCPT ); Mon, 2 Feb 2015 03:00:05 -0500 Received: from mail-ob0-f178.google.com ([209.85.214.178]:43579 "EHLO mail-ob0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932857AbbBBH76 (ORCPT ); Mon, 2 Feb 2015 02:59:58 -0500 MIME-Version: 1.0 In-Reply-To: <20150201221856.421.6151@quantum> References: <1422011024-32283-1-git-send-email-tomeu.vizoso@collabora.com> <1422011024-32283-5-git-send-email-tomeu.vizoso@collabora.com> <54CA8662.7040008@codeaurora.org> <20150131013158.GA4323@codeaurora.org> <20150201221856.421.6151@quantum> Date: Mon, 2 Feb 2015 08:59:57 +0100 X-Google-Sender-Auth: s1t9qbzvCy16JSBeoEsqwklzmaE Message-ID: Subject: Re: [PATCH v13 4/6] clk: Add rate constraints to clocks From: Geert Uytterhoeven To: Mike Turquette Cc: Tomeu Vizoso , Stephen Boyd , Linux MIPS Mailing List , "linux-doc@vger.kernel.org" , Tony Lindgren , Chao Xie , Haojian Zhuang , Boris Brezillon , Russell King , Jonathan Corbet , "Emilio L??pez" , Linux-sh list , Alex Elder , Zhangfei Gao , Bintian Wang , Matt Porter , "linux-omap@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , Ralf Baechle , Tero Kristo , Manuel Lauss , Maxime Ripard , Javier Martinez Canillas Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2748 Lines: 74 On Sun, Feb 1, 2015 at 11:18 PM, Mike Turquette wrote: > Quoting Tomeu Vizoso (2015-01-31 10:36:22) >> On 31 January 2015 at 02:31, Stephen Boyd 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 >> >> > 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 >> > 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 > > 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@linux-m68k.org 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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/