linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Maxime Ripard <maxime.ripard@free-electrons.com>
To: Michael Turquette <mturquette@linaro.org>
Cc: Lee Jones <lee.jones@linaro.org>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, kernel@stlinux.com,
	sboyd@codeaurora.org, devicetree@vger.kernel.org,
	geert@linux-m68k.org
Subject: Re: [PATCH v6 4/4] clk: dt: Introduce binding for always-on clock support
Date: Mon, 4 May 2015 15:31:24 +0200	[thread overview]
Message-ID: <20150504133124.GD3274@lukather> (raw)
In-Reply-To: <20150429230549.16410.82625@quantum>

[-- Attachment #1: Type: text/plain, Size: 2948 bytes --]

On Wed, Apr 29, 2015 at 04:05:49PM -0700, Michael Turquette wrote:
> > > Could you elaborate why you still want to have the clk-always-on in the
> > > device tree instead of in the kernel where it can be removed when
> > > necessary? What's your problem with enabling the critical clocks using
> > > clk_prepare_enable like other SoCs already do?
> > 
> > I've explained what my issues are already.  I'm not a fan of
> > hand-rolling and duplicating code which can be consolidated and make
> > generic.  Call me old fashioned. :)
> 
> I agree with Lee that the open code stuff isn't great, but I'm less and
> less convinced that the DT method is the way to go. Maxime has done a
> good job of reminding me why I always pushed back on this type of
> approach in the past.
> 
> Having a clock provider driver call clk_get, clk_prepare_enable on a clk
> is just fine. I think what needs to be done is to look at the platforms
> that open code this and find out how to replace this with some common
> code that any clock provider driver can call. Perhaps we can:
> 
> 1) use the struct clk_ops.init callback (which is used very little) and
> pass in a generic function to handle this case, or

I'm not sure that would work with clocks that provide several outputs,
and need only one (or at least not all of them) to be enabled.

Or we would need to pass some arguments to this function when we
register our clock.

> 2) we can create a new per-clk flag which is used by __clk_init to call
> clk_prepare_enable, or

That would work. It's what people usually expect from
CLK_IGNORE_UNUSED, and it's the first thing they try, so it would be
the easiest I guess.

> 3) we can add a new generic function like clk_register which sets any
> specified defaults (clk_set_defaults), but using C code and not DT

What kind of defaults are we talking about here? Just the clock state
or do you include boundaries, rate, etc. in it?

> I would need to look at the drivers that open code their
> clk_prepare_enable calls for non-Linux devices and see what similarities
> exist.

What really worked for us is to call clk_prepare_enable straight after
the call to clk_register.

Having a single place where we enable all the clocks causes a few
issues, mostly because we're not even sure the clock has been
registered at this time, and we do have to consider the clock name as
an ABI, which caused some issues for us in the past.

> But clearly the DT element of Lee's approach is causing some push
> back, so we should consider if there is a less controversial way to do
> this (and a way that benefits non-DT platforms as well).
> 
> I do think Lee's idea of consolidating around a single solution to a
> common problem is a great idea, but maybe not by using Devicetree.

Agreed.

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  reply	other threads:[~2015-05-04 13:35 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-07 18:43 [PATCH v6 0/4] clk: Provide support for always-on clocks Lee Jones
2015-04-07 18:43 ` [PATCH v6 1/4] ARM: sti: stih407-family: Supply defines for CLOCKGEN A0 Lee Jones
2015-04-07 18:43 ` [PATCH v6 2/4] ARM: sti: stih410-clocks: Identify critical clocks as always-on Lee Jones
2015-04-07 18:43 ` [PATCH v6 3/4] clk: Provide always-on clock support Lee Jones
2015-04-08  5:02   ` Stephen Boyd
2015-04-07 18:43 ` [PATCH v6 4/4] clk: dt: Introduce binding for " Lee Jones
2015-04-07 19:17   ` Maxime Ripard
2015-04-08  8:14     ` Lee Jones
2015-04-08  9:43       ` Maxime Ripard
2015-04-08 10:38         ` Lee Jones
2015-04-08 15:57           ` Maxime Ripard
2015-04-08 17:23             ` Lee Jones
2015-04-22  9:34               ` Maxime Ripard
2015-04-29 14:17                 ` Lee Jones
2015-04-29 14:33                   ` Geert Uytterhoeven
2015-04-29 15:11                     ` Lee Jones
2015-04-29 20:27                       ` Maxime Ripard
2015-04-29 14:51                   ` Sascha Hauer
2015-04-29 16:07                     ` Lee Jones
2015-04-29 23:05                       ` Michael Turquette
2015-05-04 13:31                         ` Maxime Ripard [this message]
2015-04-29 20:23                   ` Maxime Ripard
2015-04-30  9:57                     ` Lee Jones
2015-05-01  5:34                       ` Sascha Hauer
2015-05-01  6:44                         ` Lee Jones
2015-05-07 21:20                           ` Maxime Ripard
2015-05-08  7:22                             ` Lee Jones
2015-05-15 14:12                               ` Maxime Ripard
2015-04-07 20:32   ` Rob Herring
2015-04-08  5:25   ` Stephen Boyd
2015-04-08  5:28 ` [PATCH v6 0/4] clk: Provide support for always-on clocks Stephen Boyd

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150504133124.GD3274@lukather \
    --to=maxime.ripard@free-electrons.com \
    --cc=devicetree@vger.kernel.org \
    --cc=geert@linux-m68k.org \
    --cc=kernel@stlinux.com \
    --cc=lee.jones@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mturquette@linaro.org \
    --cc=s.hauer@pengutronix.de \
    --cc=sboyd@codeaurora.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).