From: Michael Turquette <mturquette@baylibre.com>
To: Lee Jones <lee.jones@linaro.org>,
Cc: linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org,
sboyd@codeaurora.org, maxime.ripard@free-electrons.com,
s.hauer@pengutronix.de, geert@linux-m68k.org
Subject: Re: [PATCH RFC RFT 3/3] clk: introduce CLK_ENABLE_HAND_OFF flag
Date: Tue, 11 Aug 2015 11:58:27 -0700 [thread overview]
Message-ID: <20150811185827.31346.68194@quantum> (raw)
In-Reply-To: <20150811183317.GT18282@x1>
Quoting Lee Jones (2015-08-11 11:33:17)
> On Tue, 11 Aug 2015, Michael Turquette wrote:
> > I had a chat with Stephen Boyd about this yesterday and we discussed
> > taking it even further: do not explicitly enable the clock, but instead
> > simply refrain from disabling a clock that is both ON and has this flag
> > set.
> =
> Doing so will prevent clk_disable_unused() from gating it, but if we
> don't take a reference sibling clocks will be able to disable the
> parent which will be fatal.
We propagate the reference counting up the tree. My implementation is a
call to clk_core_enable which walks the parent lists and increments
reference counts, so what you describe will not happen.
I am only proposing to augment the logic slightly by checking the value
of the .is_enabled callback and making sure that this clock isn't
already gated in hardware. If it is then we won't touch it in the
framework; it's up to drivers to claim it and enable as usual.
> =
> > It sounds like that would that work for ST, yes? Are you interested in
> > using a flag (or a DT property) to enable an otherwise-gated clock, or
> > simply insuring that bootloader-enabled and reset-enabled clocks are not
> > spuriously turned off?
> =
> Clocks are ungated by the bootloader.
Thanks for the info.
> > That's great. I suspected that behavior was not necessary at all.
> > =
> > Let's zero in on the technical concerns here:
> > =
> > 1) ST's flexgen binding should not get screwed over. So we'll need a DT
> > wrapper around the flag
> =
> Great.
> =
> > 2) I would love feedback on whether you expect the flag/property to
> > enable a disabled clock or if you merely want to keep an already-enabled
> > clock from being disabled
> =
> For us, we only need the clock not to be turned off, either by
> clk_disable_unused() or by drivers using critical clock siblings, but
> as I'm striving for a generic approach, it would be hypocritical of me
> to encourage not to cover all bases with this solution.
I'm going for Minimum Viable Product here. I deeply do not want to have
a mechanism for ungating clocks from DT. Keeping ungated clocks enabled
is a different beast entirely and probably satisfies most users that
have been following development of this feature.
For example the whole big messy fuss over the DT bindings for the
simple-fb driver could have been avoided if this feature had existed
then.
Additionally, I prefer not to merge features that do not have users. ST
needs to keep already-enabled clocks from being turned off, so that's
what we'll merge.
Regards,
Mike
next prev parent reply other threads:[~2015-08-11 18:58 UTC|newest]
Thread overview: 83+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-07 19:09 [PATCH RFC RFT 0/3] clk: detect per-user enable imbalances and implement hand-off Michael Turquette
2015-08-07 19:09 ` [PATCH RFC RFT 1/3] clk: per-user clk prepare & enable ref counts Michael Turquette
2015-08-10 13:47 ` Maxime Coquelin
2015-08-10 19:31 ` Michael Turquette
2015-08-07 19:09 ` [PATCH RFC RFT 2/3] clk: clk_put WARNs if user has not disabled clk Michael Turquette
2015-09-30 15:38 ` Geert Uytterhoeven
2015-09-30 15:38 ` Geert Uytterhoeven
2015-09-30 15:38 ` Geert Uytterhoeven
2015-10-20 12:40 ` Michael Turquette
2015-10-20 12:40 ` Michael Turquette
2015-10-20 12:40 ` Michael Turquette
2015-10-20 12:52 ` Russell King - ARM Linux
2015-10-20 12:52 ` Russell King - ARM Linux
2015-10-20 12:52 ` Russell King - ARM Linux
2015-10-21 9:50 ` Geert Uytterhoeven
2015-10-21 9:50 ` Geert Uytterhoeven
2015-10-21 9:50 ` Geert Uytterhoeven
2015-10-21 10:59 ` Russell King - ARM Linux
2015-10-21 10:59 ` Russell King - ARM Linux
2015-10-21 10:59 ` Russell King - ARM Linux
2015-10-21 15:50 ` Michael Turquette
2015-10-21 15:50 ` Michael Turquette
2015-10-21 15:50 ` Michael Turquette
2015-10-21 15:50 ` Michael Turquette
2015-10-21 16:46 ` Geert Uytterhoeven
2015-10-21 16:46 ` Geert Uytterhoeven
2015-10-21 16:46 ` Geert Uytterhoeven
2015-10-22 9:57 ` Michael Turquette
2015-10-22 9:57 ` Michael Turquette
2015-10-22 9:57 ` Michael Turquette
2015-08-07 19:09 ` [PATCH RFC RFT 3/3] clk: introduce CLK_ENABLE_HAND_OFF flag Michael Turquette
2015-08-10 14:48 ` Lee Jones
2015-08-10 18:55 ` Michael Turquette
2015-08-11 8:43 ` Lee Jones
2015-08-11 10:02 ` Maxime Coquelin
2015-08-11 10:11 ` Geert Uytterhoeven
2015-08-11 11:36 ` Maxime Coquelin
2015-08-11 11:41 ` Maxime Coquelin
2015-08-11 11:49 ` Geert Uytterhoeven
2015-08-11 12:03 ` Maxime Coquelin
2015-08-11 12:34 ` Geert Uytterhoeven
2015-08-11 12:03 ` Lee Jones
2015-08-11 17:09 ` Michael Turquette
2015-08-11 17:09 ` Michael Turquette
2015-08-11 18:17 ` Lee Jones
2015-08-12 7:27 ` Geert Uytterhoeven
2015-08-12 7:51 ` Lee Jones
2015-08-11 17:09 ` Michael Turquette
2015-08-11 17:09 ` Michael Turquette
2015-08-11 18:20 ` Lee Jones
2015-08-11 17:09 ` Michael Turquette
2015-08-11 18:33 ` Lee Jones
2015-08-11 18:58 ` Michael Turquette [this message]
2015-08-18 15:52 ` Maxime Ripard
2015-08-18 16:33 ` Michael Turquette
2015-08-20 15:11 ` Maxime Ripard
2015-08-18 15:58 ` Maxime Ripard
2015-08-18 16:39 ` Michael Turquette
2015-08-20 15:39 ` Maxime Ripard
2015-08-10 15:36 ` [PATCH RFC RFT 0/3] clk: detect per-user enable imbalances and implement hand-off Lee Jones
2015-08-10 19:28 ` Michael Turquette
2015-08-11 9:11 ` Lee Jones
2015-08-11 9:20 ` Geert Uytterhoeven
2015-08-11 16:41 ` Michael Turquette
2015-08-11 17:42 ` Geert Uytterhoeven
2015-08-18 15:45 ` Maxime Ripard
2015-08-18 16:43 ` Michael Turquette
2015-08-20 15:15 ` Maxime Ripard
2015-08-25 21:50 ` Michael Turquette
2015-08-26 6:54 ` Lee Jones
2015-08-26 8:42 ` Maxime Coquelin
2015-08-26 9:09 ` Lee Jones
2015-08-26 9:37 ` Maxime Coquelin
2015-08-26 20:41 ` Lee Jones
2015-08-29 3:49 ` Maxime Ripard
2015-08-29 3:55 ` Maxime Ripard
2015-09-30 12:36 ` Michael Turquette
2015-10-01 19:56 ` Maxime Ripard
2015-11-24 9:48 ` Heiko Stübner
2015-12-05 0:46 ` Michael Turquette
2015-12-05 0:46 ` Michael Turquette
2016-02-11 21:33 ` Michael Turquette
2016-02-11 21:33 ` Michael Turquette
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=20150811185827.31346.68194@quantum \
--to=mturquette@baylibre.com \
--cc=geert@linux-m68k.org \
--cc=lee.jones@linaro.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maxime.ripard@free-electrons.com \
--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 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.