From: "André Przywara" <andre.przywara@arm.com>
To: Lee Jones <lee.jones@linaro.org>,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Cc: kernel@stlinux.com, s.hauer@pengutronix.de, sboyd@codeaurora.org,
geert@linux-m68k.org, maxime.ripard@free-electrons.com,
mturquette@baylibre.com, maxime.coquelin@st.com
Subject: Re: [PATCH 3/3] clk: Provide OF helper to mark clocks as CRITICAL
Date: Wed, 27 Jan 2016 23:51:45 +0000 [thread overview]
Message-ID: <56A95811.8010200@arm.com> (raw)
In-Reply-To: <1453127331-20616-4-git-send-email-lee.jones@linaro.org>
Hi,
On 18/01/16 14:28, Lee Jones wrote:
> This call matches clocks which have been marked as critical in DT
> and sets the appropriate flag. These flags can then be used to
> mark the clock core flags appropriately prior to registration.
I like the idea of having a generic property very much. Also this solves
a problem I have in a very elegant way.
I guess you need to document this in the bindings documentation, I'd
suggest Documentation/devicetree/bindings/clock/clock-bindings.txt.
Also by doing so you should clarify it's exact meaning:
The singular form of "critical-clock" hints as either having a scalar
value only or even being a flag only.
But the code actually reads as it being _a list_ of indices of the
output clocks, so wouldn't "critical-clocks" (plural) be a better name?
This goes along the line of using the plural for the other standard
clock node properties as well.
So is this the intended usage?
some_clk {
#clock-cells = <1>;
clock-output-names = "just_led", "cpu";
critical-clocks = <1>;
....
to mark the "cpu" clock as critical?
Or matching the clock-indeces property values if that is used?
Also since it is a generic property, isn't there some way of parsing it
and setting the flag automatically for each and every clock provider?
Without driver authors having to explicitly call this function you
provide? The nature of being a generic clock flag makes me think this is
worthwhile.
Cheers,
Andre.
>
> Signed-off-by: Lee Jones <lee.jones@linaro.org>
> ---
> include/linux/clk-provider.h | 22 ++++++++++++++++++++++
> 1 file changed, 22 insertions(+)
>
> diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
> index ffa0b2e..6f178b7 100644
> --- a/include/linux/clk-provider.h
> +++ b/include/linux/clk-provider.h
> @@ -707,6 +707,23 @@ const char *of_clk_get_parent_name(struct device_node *np, int index);
>
> void of_clk_init(const struct of_device_id *matches);
>
> +static inline int of_clk_mark_if_critical(struct device_node *np,
> + int index, unsigned long *flags)
> +{
> + struct property *prop;
> + const __be32 *cur;
> + uint32_t idx;
> +
> + if (!np || !flags)
> + return -EINVAL;
> +
> + of_property_for_each_u32(np, "critical-clock", prop, cur, idx)
> + if (index == idx)
> + *flags |= CLK_IS_CRITICAL;
> +
> + return 0;
> +}
> +
> #else /* !CONFIG_OF */
>
> static inline int of_clk_add_provider(struct device_node *np,
> @@ -742,6 +759,11 @@ static inline const char *of_clk_get_parent_name(struct device_node *np,
> {
> return NULL;
> }
> +static inline int of_clk_mark_if_critical(struct device_node *np, int index,
> + unsigned long *flags)
> +{
> + return 0;
> +}
> #define of_clk_init(matches) \
> { while (0); }
> #endif /* CONFIG_OF */
>
next prev parent reply other threads:[~2016-01-27 23:52 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-18 14:28 [PATCH 0/3] clk: Add support for critical clocks Lee Jones
2016-01-18 14:28 ` [PATCH 1/3] clk: Allow clocks to be marked as CRITICAL Lee Jones
2016-01-18 17:15 ` Geert Uytterhoeven
2016-01-19 7:53 ` Lee Jones
2016-02-11 0:41 ` Michael Turquette
2016-01-18 14:28 ` [PATCH 2/3] clk: WARN_ON about to disable a critical clock Lee Jones
2016-02-11 0:43 ` Michael Turquette
2017-06-27 11:16 ` Dirk Behme
2017-07-03 11:53 ` Lee Jones
2017-07-03 12:01 ` Dirk Behme
2017-07-03 14:25 ` Lee Jones
2017-07-03 15:24 ` Dirk Behme
2017-07-03 16:06 ` Lee Jones
2016-01-18 14:28 ` [PATCH 3/3] clk: Provide OF helper to mark clocks as CRITICAL Lee Jones
2016-01-27 23:51 ` André Przywara [this message]
2016-02-01 6:32 ` Maxime Ripard
2016-02-01 8:22 ` Lee Jones
2016-02-11 0:38 ` Michael Turquette
2016-02-02 13:39 ` Andre Przywara
2016-02-02 15:02 ` Lee Jones
2016-02-11 0:48 ` Michael Turquette
2016-02-11 1:00 ` [PATCH 0/3] clk: Add support for critical clocks 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=56A95811.8010200@arm.com \
--to=andre.przywara@arm.com \
--cc=geert@linux-m68k.org \
--cc=kernel@stlinux.com \
--cc=lee.jones@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maxime.coquelin@st.com \
--cc=maxime.ripard@free-electrons.com \
--cc=mturquette@baylibre.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox