LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Jerome Brunet <jbrunet@baylibre.com>
To: Stephen Boyd <sboyd@codeaurora.org>,
Michael Turquette <mturquette@baylibre.com>
Cc: Jerome Brunet <jbrunet@baylibre.com>,
linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org,
Russell King <linux@armlinux.org.uk>,
Linus Walleij <linus.walleij@linaro.org>,
Quentin Schulz <quentin.schulz@free-electrons.com>,
Kevin Hilman <khilman@baylibre.com>,
Maxime Ripard <maxime.ripard@free-electrons.com>
Subject: [PATCH v5 00/10] clk: implement clock rate protection mechanism
Date: Fri, 1 Dec 2017 22:51:50 +0100 [thread overview]
Message-ID: <20171201215200.23523-1-jbrunet@baylibre.com> (raw)
This Patchset is related the RFC [0] and the discussion around
CLK_SET_RATE_GATE available here [1]
This patchset introduce clock protection to the CCF core. This can then
be used for:
* Provide a way for a consumer to claim exclusivity over the rate control
of a provider. Some clock consumers require that a clock rate must not
deviate from its selected frequency. There can be several reasons for
this, not least of which is that some hardware may not be able to
handle or recover from a glitch caused by changing the clock rate while
the hardware is in operation. For such HW, The ability to get exclusive
control of a clock's rate, and release that exclusivity, could be seen
as a fundamental clock rate control primitive. The exclusivity is not
preemptible, so when claimed more than once, is rate is effectively
locked.
* Provide a similar functionality to providers themselves, fixing
CLK_SET_RATE_GATE flag (enforce clock gating along the tree). While
there might still be a few platforms relying the broken implementation,
tests done has shown this change to be pretty safe.
Changes since v4: [4]
- Fixup documentation comments
- Fix error on exclusive API when CCF is disabled
Changes since v3: [3]
- Reorder patches following Stephen comments
- Add before/after examples to the cosmetic change
- Remove loops around protection where possible
- Rename the API from "protect" to "exclusive" which decribe what the
code better
Changes since v2: [2]
- Fix issues reported by Adriana Reus (Thanks !)
- Dropped patch "clk: move CLK_SET_RATE_GATE protection from prepare
to enable". This was broken as the protect count, like the prepare_count
should only be accessed under the prepare_lock.
Changes since v1: [1]
- Check if the rate would actually change before continuing, and bail-out
early if not.
Changes since RFC: [0]
- s/clk_protect/clk_rate_protect
- Request rework around core_nolock function
- Add clk_set_rate_protect
- Reword clk_rate_protect and clk_unprotect documentation
- Add few comments to explain the code
- Add fixes for CLK_SET_RATE_GATE
This was tested with the audio use case mentioned in [1]
[0]: https://lkml.kernel.org/r/20170321183330.26722-1-jbrunet@baylibre.com
[1]: https://lkml.kernel.org/r/148942423440.82235.17188153691656009029@resonance
[2]: https://lkml.kernel.org/r/20170521215958.19743-1-jbrunet@baylibre.com
[3]: https://lkml.kernel.org/r/20170612194438.12298-1-jbrunet@baylibre.com
[4]: https://lkml.kernel.org/r/20170924200030.6227-1-jbrunet@baylibre.com
Jerome Brunet (10):
clk: fix incorrect usage of ENOSYS
clk: take the prepare lock out of clk_core_set_parent
clk: add clk_core_set_phase_nolock function
clk: rework calls to round and determine rate callbacks
clk: use round rate to bail out early in set_rate
clk: add clock protection mechanism to clk core
clk: cosmetic changes to clk_summary debugfs entry
clk: fix CLK_SET_RATE_GATE with clock rate protection
clk: add clk_rate_exclusive api
clk: fix set_rate_range when current rate is out of range
drivers/clk/clk.c | 509 +++++++++++++++++++++++++++++++++++++------
include/linux/clk-provider.h | 1 +
include/linux/clk.h | 62 ++++++
3 files changed, 502 insertions(+), 70 deletions(-)
--
2.14.3
next reply other threads:[~2017-12-01 21:52 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-01 21:51 Jerome Brunet [this message]
2017-12-01 21:51 ` [PATCH v5 01/10] clk: fix incorrect usage of ENOSYS Jerome Brunet
2017-12-01 21:51 ` [PATCH v5 02/10] clk: take the prepare lock out of clk_core_set_parent Jerome Brunet
2017-12-01 21:51 ` [PATCH v5 03/10] clk: add clk_core_set_phase_nolock function Jerome Brunet
2017-12-01 21:51 ` [PATCH v5 04/10] clk: rework calls to round and determine rate callbacks Jerome Brunet
2017-12-01 21:51 ` [PATCH v5 05/10] clk: use round rate to bail out early in set_rate Jerome Brunet
2017-12-01 21:51 ` [PATCH v5 06/10] clk: add clock protection mechanism to clk core Jerome Brunet
2017-12-01 21:51 ` [PATCH v5 07/10] clk: cosmetic changes to clk_summary debugfs entry Jerome Brunet
2017-12-01 21:51 ` [PATCH v5 08/10] clk: fix CLK_SET_RATE_GATE with clock rate protection Jerome Brunet
2018-03-30 8:20 ` Jerome Brunet
2017-12-01 21:51 ` [PATCH v5 09/10] clk: add clk_rate_exclusive api Jerome Brunet
2017-12-01 21:52 ` [PATCH v5 10/10] clk: fix set_rate_range when current rate is out of range Jerome Brunet
2017-12-20 0:38 ` [PATCH v5 00/10] clk: implement clock rate protection mechanism Michael Turquette
2017-12-20 17:45 ` Jerome Brunet
2017-12-22 2:15 ` Stephen Boyd
2018-01-29 9:22 ` Jerome Brunet
2018-02-01 17:43 ` Stephen Boyd
2018-02-02 12:50 ` Jerome Brunet
2018-04-23 18:21 ` Michael Turquette
2018-05-24 14:53 ` Jerome Brunet
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=20171201215200.23523-1-jbrunet@baylibre.com \
--to=jbrunet@baylibre.com \
--cc=khilman@baylibre.com \
--cc=linus.walleij@linaro.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=maxime.ripard@free-electrons.com \
--cc=mturquette@baylibre.com \
--cc=quentin.schulz@free-electrons.com \
--cc=sboyd@codeaurora.org \
--subject='Re: [PATCH v5 00/10] clk: implement clock rate protection mechanism' \
/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
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).