From: ezequiel.garcia@free-electrons.com (Ezequiel Garcia)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 0/4] clk: mvebu: fix clk init order
Date: Mon, 17 Feb 2014 12:44:22 -0300 [thread overview]
Message-ID: <20140217154421.GD2765@localhost> (raw)
In-Reply-To: <53022AA9.8090606@free-electrons.com>
On Mon, Feb 17, 2014 at 04:28:41PM +0100, Gregory CLEMENT wrote:
> On 17/02/2014 16:21, Ezequiel Garcia wrote:
> > On Mon, Feb 17, 2014 at 03:25:22PM +0100, Gregory CLEMENT wrote:
> >> On 17/02/2014 15:13, Ezequiel Garcia wrote:
> >>> On Wed, Feb 05, 2014 at 01:34:57PM -0500, Jason Cooper wrote:
> >>>> On Sat, Jan 25, 2014 at 07:19:06PM +0100, Sebastian Hesselbarth wrote:
> >>>>> 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.
> >>>>>
> >>>>> 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. As the
> >>>>> init order for our drivers is always core clocks before clock gating,
> >>>>> we maintain init order ourselves by hooking CLK_OF_DECLARE to one
> >>>>> init function that will register core clocks before clock gating
> >>>>> driver.
> >>>>>
> >>>>> This patch is based on pre-v3.14-rc1 mainline and should go in as
> >>>>> fixes for it. As we now send MVEBU clk pull-requests to Mike directly,
> >>>>> I suggest Jason picks it up as a topic branch.
> >>>>>
> >>>>> The patches have been boot tested on Dove and compile-tested only
> >>>>> for Kirkwood, Armada 370 and XP.
> >>>>>
> >>>>> Sebastian Hesselbarth (4):
> >>>>> clk: mvebu: armada-370: maintain clock init order
> >>>>> clk: mvebu: armada-xp: maintain clock init order
> >>>>> clk: mvebu: dove: maintain clock init order
> >>>>> clk: mvebu: kirkwood: maintain clock init order
> >>>>>
> >>>>> drivers/clk/mvebu/armada-370.c | 21 ++++++++++-----------
> >>>>> drivers/clk/mvebu/armada-xp.c | 20 +++++++++-----------
> >>>>> drivers/clk/mvebu/dove.c | 19 +++++++++----------
> >>>>> drivers/clk/mvebu/kirkwood.c | 34 ++++++++++++++++------------------
> >>>>> 4 files changed, 44 insertions(+), 50 deletions(-)
> >>>>
> >>>> Whole series applied to mvebu/clk-fixes.
> >>>>
> >>>
> >>> Are we still in time to consider Emilio's oneline proposal?
> >>> (Emilio: would you mind preparing a suitable patch against dove,
> >>> kirkwood, armada370/xp, so we can see the real thing?).
> >>
> >> I am still strongly against this proposal because hard-coded the parent
> >> clock name in the driver seems very wrong and moreover in some circumstances
> >> (if there is no output-name, which is our default case) this proposal
> >> just ignored the parent clock given by the device tree and this looked
> >> more wrong.
> >>
> >
> > So you're against the proposal as a permanent fix, *and* against the
> > proposal as a workaround fix?
>
> Yes
>
> >
> >>>
> >>> Sebastian fix works perfect, and it easy to understand. However, it has
> >>> quite a large diffstat. When compared to Emilio's oneline proposal, it
> >>> seems to me it would be preferable, unless it's broken.
> >>>
> >>> Workaround or not, the fact is this code will be in v3.14, so maybe we
> >>> can spend some time considering a cleaner option.
> >>>
> >
> > Before discussing the solution as compared to your for-v3.15 clock
> > registration order patch, I wanted to trigger some discussion around
> > replacing this big and intrusive workaround with Emilio's oneline fix.
> >
> > Let's suppose we're considering them as workaround to live just one or
> > two releases. Wouldn't it be better to take the least instrusive?
> >
>
> The better solution is the one which doesn't add another regression and until
> today I though we had an agreement to use the patch set from Sebastian. If
> I remember well Jason had sent a pull request for it.
>
>
Right. If you think it adds a regression, then that's a perfectly valid reasons
for nacking.
However, I'd like to double-check we have such a regression. I guess you're
talking about the "tclk" name being hardcoded. IMHO, it's hardcoded in the
driver in the first place:
void __init mvebu_coreclk_setup(struct device_node *np,
const struct coreclk_soc_desc *desc)
{
const char *tclk_name = "tclk";
[..]
So it wouldn't be too nasty?
I think you also mentioned the hypothetical case where the name
is overloaded in the devicetree, so it's not "tclk", no? In that case,
Emilio's fix would break.
However, we don't have such situation in our 'canonical' devicetrees,
so if the devicetree is allowed to be change, it can also be
changed to add clock-output-name's so the name doesn't have to be
obtained after the clock is registered.
Which would solve it, no?
--
Ezequiel Garc?a, Free Electrons
Embedded Linux, Kernel and Android Engineering
http://free-electrons.com
next prev parent reply other threads:[~2014-02-17 15:44 UTC|newest]
Thread overview: 36+ 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 ` [PATCH 1/4] clk: mvebu: armada-370: maintain clock " Sebastian Hesselbarth
2014-01-25 18:19 ` [PATCH 2/4] clk: mvebu: armada-xp: " Sebastian Hesselbarth
2014-01-25 18:19 ` [PATCH 3/4] clk: mvebu: dove: " Sebastian Hesselbarth
2014-01-25 18:19 ` [PATCH 4/4] clk: mvebu: kirkwood: " Sebastian Hesselbarth
2014-01-25 21:32 ` [PATCH 0/4] clk: mvebu: fix clk " Emilio López
2014-01-25 21:44 ` Sebastian Hesselbarth
2014-01-25 22:11 ` Emilio López
2014-01-26 0:25 ` Ezequiel Garcia
2014-01-27 14:39 ` Thomas Petazzoni
2014-01-27 18:21 ` Sebastian Hesselbarth
2014-01-27 18:28 ` Jason Cooper
2014-01-30 10:24 ` Gregory CLEMENT
2014-01-30 10:31 ` Sebastian Hesselbarth
2014-02-03 23:16 ` Willy Tarreau
2014-02-03 23:36 ` Sebastian Hesselbarth
2014-02-04 14:58 ` Gregory CLEMENT
2014-02-04 20:07 ` Thomas Petazzoni
2014-02-05 14:08 ` Mike Turquette
2014-02-05 17:43 ` Jason Cooper
2014-02-05 18:34 ` Jason Cooper
2014-02-06 17:08 ` Ezequiel Garcia
2014-02-06 18:08 ` Jason Cooper
2014-02-17 14:13 ` Ezequiel Garcia
2014-02-17 14:25 ` Gregory CLEMENT
2014-02-17 14:42 ` Emilio López
2014-02-17 15:04 ` Gregory CLEMENT
2014-02-17 15:31 ` Emilio López
2014-02-17 15:21 ` Ezequiel Garcia
2014-02-17 15:28 ` Gregory CLEMENT
2014-02-17 15:44 ` Ezequiel Garcia [this message]
2014-02-17 15:59 ` Gregory CLEMENT
2014-02-17 18:19 ` Ezequiel Garcia
2014-02-18 9:47 ` Gregory CLEMENT
2014-02-19 16:28 ` Ezequiel Garcia
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=20140217154421.GD2765@localhost \
--to=ezequiel.garcia@free-electrons.com \
--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).