From: emilio@elopez.com.ar (Emilio López)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 0/4] clk: mvebu: fix clk init order
Date: Sat, 25 Jan 2014 19:11:07 -0300 [thread overview]
Message-ID: <52E4367B.3090608@elopez.com.ar> (raw)
In-Reply-To: <52E43046.1030105@gmail.com>
Sebastian,
El 25/01/14 18:44, Sebastian Hesselbarth escribi?:
> On 01/25/2014 10:32 PM, Emilio L?pez wrote:
>> El 25/01/14 15:19, Sebastian Hesselbarth escribi?:
>>> This patch set fixes clk init order that went upside-down with
>>> v3.14. I haven't really investigated what caused this, but I assume
>>> it is related with DT node reordering by addresses.
>>
>> The framework should be able to deal with unordered registration. I am
>> not very familiar with the mvebu driver though, do you have a valid
>> reason to require a specific order?
>
> Emilio,
>
> I rather think that everthing registered with CLK_OF_DECLARE cannot
> deal with unordered registration. The callback passed to CLK_OF_DECLARE
> has to have void as return value, so there is no way to pass errors,
> e.g. -EPROBE_DEFER, back to of_clk_init.
Indeed. What I meant is that the framework works fine if you first
register a child clock that refers to a not yet registered parent, and
then register the parent. The registration need not be strictly ordered.
> The reason for this ordering is that the clock gates depend on core
> clocks. It is always that way, so merging both init functions isn't
> that odd.
If your only dependency is the parent name, and you can use DT or
something else to get it, then you don't need to enforce an order.
>>> Anyway, with v3.14 for MVEBU SoCs, the clock gating driver gets
>>> registered before core clocks driver. Unfortunately, we cannot
>>> return -EPROBE_DEFER in drivers initialized by clk_of_init.
>>
>> Why would you need to do so? After a quick inspection on the code, I see
>> you may have problems on mvebu_clk_gating_setup() when getting the
>> default parent clock name, but I believe you could solve it in an easier
>> way by using of_clk_get_parent_name().
>
> Ok, I'll look if using of_clk_get_parent_name will help here. But again,
> I can see that clk-gating driver gets registered before core-clk driver.
> There may be no code to give you the parent name at that time.
After looking at some of the armada*.dtsi, I see you don't list the
clock names on the coreclk node, so of_clk_get_parent_name may not be of
much value after all.
Cheers,
Emilio
WARNING: multiple messages have this Message-ID (diff)
From: "Emilio López" <emilio@elopez.com.ar>
To: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
Andrew Lunn <andrew@lunn.ch>,
Mike Turquette <mturquette@linaro.org>,
Jason Cooper <jason@lakedaemon.net>,
linux-kernel@vger.kernel.org,
Ezequiel Garcia <ezequiel.garcia@free-electrons.com>,
Gregory Clement <gregory.clement@free-electrons.com>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 0/4] clk: mvebu: fix clk init order
Date: Sat, 25 Jan 2014 19:11:07 -0300 [thread overview]
Message-ID: <52E4367B.3090608@elopez.com.ar> (raw)
In-Reply-To: <52E43046.1030105@gmail.com>
Sebastian,
El 25/01/14 18:44, Sebastian Hesselbarth escribió:
> On 01/25/2014 10:32 PM, Emilio López wrote:
>> El 25/01/14 15:19, Sebastian Hesselbarth escribió:
>>> This patch set fixes clk init order that went upside-down with
>>> v3.14. I haven't really investigated what caused this, but I assume
>>> it is related with DT node reordering by addresses.
>>
>> The framework should be able to deal with unordered registration. I am
>> not very familiar with the mvebu driver though, do you have a valid
>> reason to require a specific order?
>
> Emilio,
>
> I rather think that everthing registered with CLK_OF_DECLARE cannot
> deal with unordered registration. The callback passed to CLK_OF_DECLARE
> has to have void as return value, so there is no way to pass errors,
> e.g. -EPROBE_DEFER, back to of_clk_init.
Indeed. What I meant is that the framework works fine if you first
register a child clock that refers to a not yet registered parent, and
then register the parent. The registration need not be strictly ordered.
> The reason for this ordering is that the clock gates depend on core
> clocks. It is always that way, so merging both init functions isn't
> that odd.
If your only dependency is the parent name, and you can use DT or
something else to get it, then you don't need to enforce an order.
>>> Anyway, with v3.14 for MVEBU SoCs, the clock gating driver gets
>>> registered before core clocks driver. Unfortunately, we cannot
>>> return -EPROBE_DEFER in drivers initialized by clk_of_init.
>>
>> Why would you need to do so? After a quick inspection on the code, I see
>> you may have problems on mvebu_clk_gating_setup() when getting the
>> default parent clock name, but I believe you could solve it in an easier
>> way by using of_clk_get_parent_name().
>
> Ok, I'll look if using of_clk_get_parent_name will help here. But again,
> I can see that clk-gating driver gets registered before core-clk driver.
> There may be no code to give you the parent name at that time.
After looking at some of the armada*.dtsi, I see you don't list the
clock names on the coreclk node, so of_clk_get_parent_name may not be of
much value after all.
Cheers,
Emilio
next prev parent reply other threads:[~2014-01-25 22:11 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-25 18:19 [PATCH 0/4] clk: mvebu: fix clk init order Sebastian Hesselbarth
2014-01-25 18:19 ` Sebastian Hesselbarth
2014-01-25 18:19 ` [PATCH 1/4] clk: mvebu: armada-370: maintain clock " Sebastian Hesselbarth
2014-01-25 18:19 ` Sebastian Hesselbarth
2014-01-25 18:19 ` [PATCH 2/4] clk: mvebu: armada-xp: " Sebastian Hesselbarth
2014-01-25 18:19 ` Sebastian Hesselbarth
2014-01-25 18:19 ` [PATCH 3/4] clk: mvebu: dove: " Sebastian Hesselbarth
2014-01-25 18:19 ` Sebastian Hesselbarth
2014-01-25 18:19 ` [PATCH 4/4] clk: mvebu: kirkwood: " Sebastian Hesselbarth
2014-01-25 18:19 ` Sebastian Hesselbarth
2014-01-25 21:32 ` [PATCH 0/4] clk: mvebu: fix clk " Emilio López
2014-01-25 21:32 ` Emilio López
2014-01-25 21:44 ` Sebastian Hesselbarth
2014-01-25 21:44 ` Sebastian Hesselbarth
2014-01-25 22:11 ` Emilio López [this message]
2014-01-25 22:11 ` Emilio López
2014-01-26 0:25 ` Ezequiel Garcia
2014-01-26 0:25 ` Ezequiel Garcia
2014-01-27 14:39 ` Thomas Petazzoni
2014-01-27 14:39 ` Thomas Petazzoni
2014-01-27 18:21 ` Sebastian Hesselbarth
2014-01-27 18:21 ` Sebastian Hesselbarth
2014-01-27 18:28 ` Jason Cooper
2014-01-27 18:28 ` Jason Cooper
2014-01-30 10:24 ` Gregory CLEMENT
2014-01-30 10:24 ` Gregory CLEMENT
2014-01-30 10:31 ` Sebastian Hesselbarth
2014-01-30 10:31 ` Sebastian Hesselbarth
2014-02-03 23:16 ` Willy Tarreau
2014-02-03 23:16 ` Willy Tarreau
2014-02-03 23:36 ` Sebastian Hesselbarth
2014-02-03 23:36 ` Sebastian Hesselbarth
2014-02-04 14:58 ` Gregory CLEMENT
2014-02-04 14:58 ` Gregory CLEMENT
2014-02-04 20:07 ` Thomas Petazzoni
2014-02-04 20:07 ` Thomas Petazzoni
2014-02-05 14:08 ` Mike Turquette
2014-02-05 14:08 ` Mike Turquette
2014-02-05 17:43 ` Jason Cooper
2014-02-05 17:43 ` Jason Cooper
2014-02-05 18:34 ` Jason Cooper
2014-02-05 18:34 ` Jason Cooper
2014-02-06 17:08 ` Ezequiel Garcia
2014-02-06 17:08 ` Ezequiel Garcia
2014-02-06 18:08 ` Jason Cooper
2014-02-06 18:08 ` Jason Cooper
2014-02-17 14:13 ` Ezequiel Garcia
2014-02-17 14:13 ` Ezequiel Garcia
2014-02-17 14:25 ` Gregory CLEMENT
2014-02-17 14:25 ` Gregory CLEMENT
2014-02-17 14:42 ` Emilio López
2014-02-17 14:42 ` Emilio López
2014-02-17 15:04 ` Gregory CLEMENT
2014-02-17 15:04 ` Gregory CLEMENT
2014-02-17 15:31 ` Emilio López
2014-02-17 15:31 ` Emilio López
2014-02-17 15:21 ` Ezequiel Garcia
2014-02-17 15:21 ` Ezequiel Garcia
2014-02-17 15:28 ` Gregory CLEMENT
2014-02-17 15:28 ` Gregory CLEMENT
2014-02-17 15:44 ` Ezequiel Garcia
2014-02-17 15:44 ` Ezequiel Garcia
2014-02-17 15:59 ` Gregory CLEMENT
2014-02-17 15:59 ` Gregory CLEMENT
2014-02-17 18:19 ` Ezequiel Garcia
2014-02-17 18:19 ` Ezequiel Garcia
2014-02-18 9:47 ` Gregory CLEMENT
2014-02-18 9:47 ` Gregory CLEMENT
2014-02-19 16:28 ` Ezequiel Garcia
2014-02-19 16:28 ` Ezequiel Garcia
2014-02-19 20:24 ` Emilio López
2014-02-19 20:24 ` Emilio López
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=52E4367B.3090608@elopez.com.ar \
--to=emilio@elopez.com.ar \
--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 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.