From: jbrunet@baylibre.com (Jerome Brunet)
To: linus-amlogic@lists.infradead.org
Subject: [PATCH v3 00/10] clk: implement clock rate protection mechanism
Date: Tue, 11 Jul 2017 23:04:56 +0200 [thread overview]
Message-ID: <1499807096.2287.3.camel@baylibre.com> (raw)
In-Reply-To: <20170612194438.12298-1-jbrunet@baylibre.com>
On Mon, 2017-06-12 at 21:44 +0200, Jerome Brunet wrote:
> This Patchset is related the RFC [0] and the discussion around
> CLK_SET_RATE_GATE available here [1]
>
> This patchset is based on clk-next.
>
> The goal of this patchset is to provide a way for consumers to inform the
> system that they depend on the rate of the clock source and can't tolerate
> other consumers changing the rate or causing glitches.
>
> With this series there is 3 use-case:
> ?- the provider is not protected: nothing changes
> ?- the provider is protected by only 1 consumer (and only once), then only
> ???this consumer will be able to alter the rate of the clock, as it is the
> ???only one depending on it.
> ?- If the provider is protected more than once, or by the provider itself,
> ???the rate is basically locked and protected against reparenting.
>
> The last patch provide the same functionnality for providers themself,
> fixing CLK_SET_RATE_GATE flag (enforce clock gating along the tree)
>
> qcom, at91 and ux500 are the heaviest users of this flag. If anybody having
> one these platform could try this series, it would help build confidence
> that the platform relying on CLK_SET_RATE_GATE (even if broken) don't get
> any regression.
>
> Changes since RFC:
> ?- 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 2 last patches to fix users of CLK_SET_RATE_GATE
>
> Changes since v1:
> ?- Add patch 4: Check if the rate would actually change before continuing, a
> ???possibly in clk_set_rate.
>
> 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.
> ?- No change around bail-out code. Mike wanted to ponder a bit more on it.
> ?- Patch 1 still included, could not find the clk-next-protect Mike was
> ???referring to.
>
> This was tested with the audio use case mentioned in [1]
>
> [0]: https://lkml.kernel.org/r/20170321183330.26722-1-jbrunet at baylibre.com
> [1]: https://lkml.kernel.org/r/148942423440.82235.17188153691656009029 at resonan
> ce
> [2]: https://lkml.kernel.org/r/20170521215958.19743-1-jbrunet at baylibre.com
>
>
Mike, Stephen,
Gentle Ping: I bet you are busy but this v3 was posted 1 month ago.
So far, We've add the ack of Linus (ux500).
Quentin (at91) and KCi (some other stuff ;) ) tested the series.
If we could add tests on qcom (and the fix i suggested after the kci run), we
would have tested the heaviest users of CLK_SET_RATE_GATE.
Please, could you let me know how to progress on this topic ?
Thx
Regards
Jerome
> Jerome Brunet (10):
> ? 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 support for clock protection
> ? clk: add clk_set_rate_protect
> ? clk: rollback set_rate_range changes on failure
> ? clk: cosmetic changes to clk_summary debugfs entry
> ? clk: fix incorrect usage of ENOSYS
> ? clk: fix CLK_SET_RATE_GATE with clock rate protection
>
> ?drivers/clk/clk.c????????????| 428 ++++++++++++++++++++++++++++++++++++----
> ---
> ?include/linux/clk-provider.h |???1 +
> ?include/linux/clk.h??????????|??43 +++++
> ?3 files changed, 402 insertions(+), 70 deletions(-)
>
prev parent reply other threads:[~2017-07-11 21:04 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-12 19:44 [PATCH v3 00/10] clk: implement clock rate protection mechanism Jerome Brunet
2017-06-12 19:44 ` [PATCH v3 01/10] clk: take the prepare lock out of clk_core_set_parent Jerome Brunet
2017-07-12 1:21 ` Stephen Boyd
2017-06-12 19:44 ` [PATCH v3 02/10] clk: add clk_core_set_phase_nolock function Jerome Brunet
2017-07-12 1:22 ` Stephen Boyd
2017-06-12 19:44 ` [PATCH v3 03/10] clk: rework calls to round and determine rate callbacks Jerome Brunet
2017-07-12 1:49 ` Stephen Boyd
2017-06-12 19:44 ` [PATCH v3 04/10] clk: use round rate to bail out early in set_rate Jerome Brunet
2017-07-12 2:00 ` Stephen Boyd
2017-07-26 17:13 ` Jerome Brunet
2017-08-04 0:32 ` Stephen Boyd
2017-06-12 19:44 ` [PATCH v3 05/10] clk: add support for clock protection Jerome Brunet
2017-07-26 0:12 ` Stephen Boyd
2017-07-26 17:18 ` Jerome Brunet
2017-08-04 0:18 ` Stephen Boyd
2017-08-08 22:37 ` Michael Turquette
2017-08-09 2:19 ` Stephen Boyd
2017-08-09 11:45 ` Russell King - ARM Linux
2017-08-09 13:34 ` Jerome Brunet
2017-08-09 13:40 ` Russell King - ARM Linux
2017-08-09 13:45 ` Jerome Brunet
2017-08-10 16:48 ` Michael Turquette
2017-08-10 16:46 ` Michael Turquette
2017-08-09 13:07 ` Jerome Brunet
2017-08-09 12:18 ` Jerome Brunet
2017-08-10 16:54 ` Michael Turquette
2017-06-12 19:44 ` [PATCH v3 06/10] clk: add clk_set_rate_protect Jerome Brunet
2017-07-26 0:59 ` Stephen Boyd
2017-06-12 19:44 ` [PATCH v3 07/10] clk: rollback set_rate_range changes on failure Jerome Brunet
2017-07-12 2:02 ` Stephen Boyd
2017-07-26 17:22 ` Jerome Brunet
2017-06-12 19:44 ` [PATCH v3 08/10] clk: cosmetic changes to clk_summary debugfs entry Jerome Brunet
2017-07-12 2:02 ` Stephen Boyd
2017-06-12 19:44 ` [PATCH v3 09/10] clk: fix incorrect usage of ENOSYS Jerome Brunet
2017-07-12 2:03 ` Stephen Boyd
2017-06-12 19:44 ` [PATCH v3 10/10] clk: fix CLK_SET_RATE_GATE with clock rate protection Jerome Brunet
2017-06-20 9:07 ` [PATCH v3 00/10] clk: implement clock rate protection mechanism Linus Walleij
2017-06-20 10:50 ` Jerome Brunet
2017-06-20 11:54 ` Linus Walleij
2017-06-20 12:32 ` Jerome Brunet
2017-06-20 12:47 ` Boris Brezillon
2017-06-22 7:07 ` Quentin Schulz
2017-06-22 10:09 ` Jerome Brunet
2017-06-20 15:29 ` Linus Walleij
2017-06-21 13:15 ` Jerome Brunet
2017-07-12 1:16 ` Stephen Boyd
2017-07-26 17:05 ` Jerome Brunet
2017-07-27 22:44 ` Stephen Boyd
2017-08-08 22:40 ` Michael Turquette
2017-08-09 12:14 ` Jerome Brunet
2017-07-11 21:04 ` Jerome Brunet [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=1499807096.2287.3.camel@baylibre.com \
--to=jbrunet@baylibre.com \
--cc=linus-amlogic@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).