All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael Turquette <mturquette@baylibre.com>
To: Dirk Behme <dirk.behme@de.bosch.com>
Cc: Mark Rutland <mark.rutland@arm.com>,
	devicetree@vger.kernel.org,
	Stefano Stabellini <sstabellini@kernel.org>,
	Stephen Boyd <sboyd@codeaurora.org>,
	Dirk Behme <dirk.behme@gmail.com>,
	Julien Grall <julien.grall@arm.com>,
	xen-devel@lists.xenproject.org, linux-clk@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v4] xen/arm: Add a clock property
Date: Thu, 21 Jul 2016 17:07:53 -0700	[thread overview]
Message-ID: <146914607316.8780.7961396342647226841__25473.9105854698$1469146154$gmane$org@resonance> (raw)
In-Reply-To: <alpine.DEB.2.10.1607141132000.26575@sstabellini-ThinkPad-X260>

Quoting Stefano Stabellini (2016-07-14 03:38:04)
> On Thu, 14 Jul 2016, Dirk Behme wrote:
> > On 13.07.2016 23:03, Michael Turquette wrote:
> > > Quoting Dirk Behme (2016-07-13 11:56:30)
> > > > On 13.07.2016 20:43, Stefano Stabellini wrote:
> > > > > On Wed, 13 Jul 2016, Dirk Behme wrote:
> > > > > > On 13.07.2016 00:26, Michael Turquette wrote:
> > > > > > > Quoting Dirk Behme (2016-07-12 00:46:45)
> > > > > > > > Clocks described by this property are reserved for use by Xen, and
> > > > > > > > the OS
> > > > > > > > must not alter their state any way, such as disabling or gating a
> > > > > > > > clock,
> > > > > > > > or modifying its rate. Ensuring this may impose constraints on
> > > > > > > > parent
> > > > > > > > clocks or other resources used by the clock tree.
> > > > > > > 
> > > > > > > Note that clk_prepare_enable will not prevent the rate from changing
> > > > > > > (clk_set_rate) or a parent from changing (clk_set_parent). The only
> > > > > > > way
> > > > > > > to do this currently would be to set the following flags on the
> > > > > > > effected
> > > > > > > clocks:
> > > > > > > 
> > > > > > >     CLK_SET_RATE_GATE
> > > > > > >     CLK_SET_PARENT_GATE
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > Regarding setting flags, I think we already talked about that. I think
> > > > > > the
> > > > > > conclusion was that in our case its not possible to manipulate the
> > > > > > flags in
> > > > > > the OS as this isn't intended to be done in cases like ours. Therefore
> > > > > > no API
> > > > > > is exported for this.
> > > > > > 
> > > > > > I.e. if we need to set these flags, we have to do that in Xen where we
> > > > > > add the
> > > > > > clocks to the hypervisor node in the device tree. And not in the
> > > > > > kernel patch
> > > > > > discussed here.
> > > > > 
> > > > > These are internal Linux flags, aren't they?
> > > > 
> > > > 
> > > > I've been under the impression that you can set clock "flags" via the
> > > > device tree. Seems I need to re-check that ;)
> > > 
> > > Right, you cannot set flags from the device tree. Also, setting these
> > > flags is done by the clock provider driver, not a consumer. Xen is the
> > > consumer.
> > 
> > 
> > Ok, thanks, then I think we can forget about using flags for the issue we are
> > discussing here.
> > 
> > Best regards
> > 
> > Dirk
> > 
> > P.S.: Would it be an option to merge the v4 patch we are discussing here,
> > then? From the discussion until here, it sounds to me that it's the best
> > option we have at the moment. Maybe improving it in the future, then.
> 
> It might be a step in the right direction, but it doesn't really prevent
> clk_set_rate from changing properties of a clock owned by Xen.  This
> patch is incomplete. We need to understand at least what it would take
> to have a complete solution.
> 
> Michael, do you have any suggestions on how it would be possible to set
> CLK_SET_RATE_GATE and CLK_SET_PARENT_GATE for those clocks in a proper
> way?

No, there is no way for a consumer to do that. The provider must do it.

> 
> Like you wrote, I would imagine it needs to be done by the clock
> provider driver. Maybe to do that, it would be easier to have a new
> device tree property on the clock node, rather than listing phandle and
> clock-specifier pairs under the Xen node?

Upon further reflection, I think that your clock consumer can probably
use clk_set_rate_range() to "lock" in a rate. This is good because it is
exactly what a clock consumer should do:

1) get the clk
2) enable the clk
3) set the required rate for the clock
4) set rate range constraints, or conversely,
5) lock in an exact rate; set the min/max rate to the same value

The problem with this solution is that it requires the consumer to have
knowledge of the rates that it wants for that clock, which I guess is
something that Linux kernels in a Xen setup do not want/need?

Is it correct that you would prefer some sort of never_touch_this_clk()
api?

Regards,
Mike

> 

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

  parent reply	other threads:[~2016-07-22  0:07 UTC|newest]

Thread overview: 121+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-12  7:46 [PATCH v4] xen/arm: Add a clock property Dirk Behme
2016-07-12  7:46 ` Dirk Behme
2016-07-12  7:46 ` Dirk Behme
2016-07-12 22:26 ` Michael Turquette
2016-07-12 22:26 ` Michael Turquette
2016-07-12 22:26   ` Michael Turquette
2016-07-12 22:26   ` Michael Turquette
2016-07-13  8:35   ` Dirk Behme
2016-07-13  8:35   ` Dirk Behme
2016-07-13  8:35     ` Dirk Behme
2016-07-13  8:35     ` Dirk Behme
2016-07-13 18:43     ` Stefano Stabellini
2016-07-13 18:43       ` Stefano Stabellini
2016-07-13 18:43       ` Stefano Stabellini
2016-07-13 18:56       ` Dirk Behme
2016-07-13 18:56       ` [Xen-devel] " Dirk Behme
2016-07-13 18:56         ` Dirk Behme
2016-07-13 21:03         ` Michael Turquette
2016-07-13 21:03         ` [Xen-devel] " Michael Turquette
2016-07-13 21:03           ` Michael Turquette
2016-07-13 21:03           ` Michael Turquette
2016-07-14  6:31           ` Dirk Behme
2016-07-14  6:31           ` [Xen-devel] " Dirk Behme
2016-07-14  6:31             ` Dirk Behme
2016-07-14  6:31             ` Dirk Behme
2016-07-14 10:14             ` Julien Grall
2016-07-14 10:38             ` Stefano Stabellini
     [not found]             ` <7df784ab-d0c0-939b-393e-214535c4b191-V5te9oGctAVWk0Htik3J/w@public.gmane.org>
2016-07-14 10:14               ` [Xen-devel] " Julien Grall
2016-07-14 10:14                 ` Julien Grall
2016-07-14 10:14                 ` Julien Grall
2016-07-14 10:32                 ` Dirk Behme
2016-07-14 10:32                   ` Dirk Behme
2016-07-14 10:32                   ` Dirk Behme
2016-07-14 10:32                 ` Dirk Behme
2016-07-14 10:38               ` [Xen-devel] " Stefano Stabellini
2016-07-14 10:38                 ` Stefano Stabellini
2016-07-14 10:38                 ` Stefano Stabellini
2016-07-14 10:49                 ` Dirk Behme
2016-07-14 10:49                 ` [Xen-devel] " Dirk Behme
2016-07-14 10:49                   ` Dirk Behme
2016-07-14 10:49                   ` Dirk Behme
2016-07-14 15:55                   ` Stefano Stabellini
2016-07-14 15:55                   ` [Xen-devel] " Stefano Stabellini
2016-07-14 15:55                     ` Stefano Stabellini
2016-07-14 16:30                     ` Dirk Behme
2016-07-14 16:30                       ` Dirk Behme
     [not found]                       ` <5787BE0B.8060504-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-07-14 17:14                         ` Julien Grall
2016-07-14 17:14                           ` Julien Grall
2016-07-14 17:14                           ` Julien Grall
2016-07-15  7:53                           ` Dirk Behme
2016-07-15  7:53                             ` Dirk Behme
2016-07-15  7:53                             ` Dirk Behme
2016-07-15  7:53                           ` Dirk Behme
2016-07-14 17:14                       ` Julien Grall
2016-07-14 16:30                     ` Dirk Behme
2016-07-22  0:07                 ` [Xen-devel] " Michael Turquette
2016-07-22  0:07                   ` Michael Turquette
2016-07-22  0:07                   ` Michael Turquette
2016-07-22  1:16                   ` Stefano Stabellini
2016-07-22  1:16                     ` Stefano Stabellini
2016-07-27  5:05                     ` Dirk Behme
2016-07-27  5:05                     ` [Xen-devel] " Dirk Behme
2016-07-27  5:05                       ` Dirk Behme
2016-07-28 11:17                       ` Julien Grall
2016-07-28 11:17                         ` Julien Grall
2016-07-28 14:35                         ` Dirk Behme
2016-07-28 14:35                           ` Dirk Behme
2016-07-28 14:35                         ` Dirk Behme
2016-07-28 11:17                       ` Julien Grall
2016-07-22  1:16                   ` Stefano Stabellini
2016-07-22  0:07                 ` Michael Turquette [this message]
2016-07-14 10:25           ` [Xen-devel] " Stefano Stabellini
2016-07-14 10:25             ` Stefano Stabellini
2016-07-14 10:25           ` Stefano Stabellini
2016-07-13 18:43     ` Stefano Stabellini
2016-07-13 18:35 ` Stefano Stabellini
2016-07-13 18:35 ` Stefano Stabellini
2016-07-13 18:35   ` Stefano Stabellini
2016-07-13 18:47   ` [Xen-devel] " Dirk Behme
2016-07-13 18:47     ` Dirk Behme
2016-07-13 19:07     ` Stefano Stabellini
2016-07-13 19:07     ` [Xen-devel] " Stefano Stabellini
2016-07-13 19:07       ` Stefano Stabellini
2016-07-13 19:07       ` Stefano Stabellini
2016-07-14  6:11       ` Dirk Behme
2016-07-14  6:11       ` [Xen-devel] " Dirk Behme
2016-07-14  6:11         ` Dirk Behme
2016-07-14  6:11         ` Dirk Behme
2016-07-14 10:28         ` Stefano Stabellini
2016-07-14 10:28           ` Stefano Stabellini
2016-07-14 10:28         ` Stefano Stabellini
2016-07-13 18:47   ` Dirk Behme
2016-07-20  9:43 ` Geert Uytterhoeven
2016-07-20  9:43   ` Geert Uytterhoeven
2016-07-20 11:01   ` Julien Grall
2016-07-20 11:01     ` Julien Grall
2016-07-20 11:49     ` Geert Uytterhoeven
2016-07-20 11:49     ` Geert Uytterhoeven
2016-07-20 11:49       ` Geert Uytterhoeven
     [not found]       ` <CAMuHMdWeJjcuBHjnjppc5Ys5Ew8VssXzg=dLpLPCOQaBnUo_7Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-07-20 12:10         ` Julien Grall
2016-07-20 12:10           ` Julien Grall
2016-07-20 12:10           ` Julien Grall
     [not found]           ` <04d9dbfb-196d-a775-7fbb-526aba8085f4-5wv7dgnIgG8@public.gmane.org>
2016-07-20 12:46             ` Geert Uytterhoeven
2016-07-20 12:46               ` Geert Uytterhoeven
2016-07-20 12:46               ` Geert Uytterhoeven
2016-07-20 12:53               ` Dirk Behme
2016-07-20 12:53                 ` Dirk Behme
2016-07-20 12:53                 ` Dirk Behme
2016-07-20 12:53               ` Dirk Behme
2016-07-20 13:21               ` Julien Grall
2016-07-20 13:21                 ` Julien Grall
2016-07-22  0:14                 ` Michael Turquette
2016-07-22  0:14                 ` Michael Turquette
2016-07-22  0:14                   ` Michael Turquette
2016-07-22  0:14                   ` Michael Turquette
2016-07-20 13:21               ` Julien Grall
2016-07-20 12:46           ` Geert Uytterhoeven
2016-07-20 12:10       ` Julien Grall
2016-07-20 11:01   ` Julien Grall
2016-07-20  9:43 ` Geert Uytterhoeven
2016-07-12  7:46 Dirk Behme

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='146914607316.8780.7961396342647226841__25473.9105854698$1469146154$gmane$org@resonance' \
    --to=mturquette@baylibre.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dirk.behme@de.bosch.com \
    --cc=dirk.behme@gmail.com \
    --cc=julien.grall@arm.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=sboyd@codeaurora.org \
    --cc=sstabellini@kernel.org \
    --cc=xen-devel@lists.xenproject.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.