From: lee.jones@linaro.org (Lee Jones)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v7 0/5] clk: Provide support for always-on clocks
Date: Thu, 30 Jul 2015 10:09:57 +0100 [thread overview]
Message-ID: <20150730090957.GA14642@x1> (raw)
In-Reply-To: <20150730002726.642.33056@quantum>
On Wed, 29 Jul 2015, Michael Turquette wrote:
> Quoting Lee Jones (2015-07-22 06:04:10)
> > Lots of platforms contain clocks which if turned off would prove fatal.
> > The only way to recover from these catastrophic failures is to restart
> > the board(s). Now, when a clock provider is registered with the
> > framework it is possible for a list of critical clocks to be supplied
> > which must be kept ungated. Each clock mentioned in the newly
> > introduced 'critical-clock' property will be clk_prepare_enable()d
> > where the normal references will be taken. This will prevent the
> > common clk framework from attempting to gate them during the normal
> > clk_disable_unused() and disable_clock() procedures.
> >
> > Note that it will still be possible for knowledgeable drivers to turn
> > these clocks off using clk_{enable,disable}_critical() calls.
>
> Hi Lee,
>
> Thanks for submitting the series.
>
> It has been a little while since v6. It would be helpful to remind me of
> why a new api is necessary, versus using the existing clk_prepare_unused
> call at the time that a clock is enabled.
>
> I'm looking over the patches in detail now, but one question stands out:
> besides the DT use case, would a Linux device driver ever call
> clk_enable_critical instead of using clk_enable? If so, why?
Looks like a have a lot of emails to reply to. Let's start here and
work our way through them, there are good answers to all of your
reasonable questions.
This set only supports the DT way of marking clocks as critical, due
to the fact that that's the way we'll be using the API. I can spend
more time, once we have the ground work done, writing a similar
generic call (or expand the current one, whatever's deemed the best
approach) which will allow this to be possible from C.
> > Changelog:
> > v6 => v7:
> > - Introduce API to enable and disable critical clocks
> > - Rename 'always-on-clock' to 'critical-clock'
> >
> > v5 => v6:
> > - Use of_clk_get_from_provider() instead of of_clk_get_by_clkspec()
> > - Explicitly describe expected DT values
> > - Be pedantic with regards to printk() format specifiers
> >
> > vX => v5:
> > Implementations have changed drastically between versions, thus I
> > would like for this set to be thought of independently from its
> > predecessors. The only reason for identifying as 'v5' is ease of
> > differentiation on the list, which stems from the confusion caused
> > by submitting 'v4' as a separate entity.
> >
> > Lee Jones (5):
> > ARM: sti: stih407-family: Supply defines for CLOCKGEN A0
> > ARM: sti: stih410-clocks: Identify critical clocks
> > clk: Supply the critical clock {init, enable, disable} framework
> > clk: Provide critical clock support
> > clk: dt: Introduce binding for critical clock support
> >
> > .../devicetree/bindings/clock/clock-bindings.txt | 39 +++++++++++++++++++
> > arch/arm/boot/dts/stih410-clock.dtsi | 10 +++++
> > drivers/clk/clk-conf.c | 45 +++++++++++++++++++++-
> > drivers/clk/clk.c | 45 ++++++++++++++++++++++
> > include/dt-bindings/clock/stih407-clks.h | 4 ++
> > include/linux/clk-provider.h | 2 +
> > include/linux/clk.h | 30 +++++++++++++++
> > 7 files changed, 174 insertions(+), 1 deletion(-)
> >
--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org ? Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
prev parent reply other threads:[~2015-07-30 9:09 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-22 13:04 [PATCH v7 0/5] clk: Provide support for always-on clocks Lee Jones
2015-07-22 13:04 ` [PATCH v7 1/5] ARM: sti: stih407-family: Supply defines for CLOCKGEN A0 Lee Jones
2015-07-22 13:04 ` [PATCH v7 2/5] ARM: sti: stih410-clocks: Identify critical clocks Lee Jones
2015-07-22 13:04 ` [PATCH v7 3/5] clk: Supply the critical clock {init, enable, disable} framework Lee Jones
2015-07-27 7:25 ` Maxime Ripard
2015-07-27 8:53 ` Lee Jones
2015-07-28 11:40 ` Maxime Ripard
2015-07-28 13:00 ` Lee Jones
2015-07-30 1:19 ` Michael Turquette
2015-07-30 9:50 ` Lee Jones
2015-07-30 22:47 ` Michael Turquette
2015-07-31 7:30 ` Maxime Ripard
2015-07-31 8:32 ` Lee Jones
2015-07-31 7:03 ` Maxime Ripard
2015-07-31 8:48 ` Lee Jones
2015-07-30 1:21 ` Michael Turquette
2015-07-30 9:21 ` Lee Jones
2015-07-30 22:57 ` Michael Turquette
2015-07-31 8:56 ` Lee Jones
2015-07-30 1:02 ` Michael Turquette
2015-07-30 11:17 ` Lee Jones
2015-07-30 23:35 ` Michael Turquette
2015-07-31 9:02 ` Lee Jones
2015-08-01 0:59 ` Michael Turquette
2015-07-22 13:04 ` [PATCH v7 4/5] clk: Provide critical clock support Lee Jones
2015-08-17 5:43 ` Barry Song
2015-08-17 7:42 ` Lee Jones
2015-08-20 13:23 ` Barry Song
2015-07-22 13:04 ` [PATCH v7 5/5] clk: dt: Introduce binding for " Lee Jones
2015-07-27 7:10 ` Maxime Ripard
2015-07-27 7:31 ` Lee Jones
2015-07-28 9:32 ` Maxime Ripard
2015-07-30 9:23 ` Lee Jones
2015-07-30 0:27 ` [PATCH v7 0/5] clk: Provide support for always-on clocks Michael Turquette
2015-07-30 9:09 ` Lee Jones [this message]
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=20150730090957.GA14642@x1 \
--to=lee.jones@linaro.org \
--cc=linux-arm-kernel@lists.infradead.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).