From: Eric Anholt <eric@anholt.net>
To: Stephen Boyd <sboyd@codeaurora.org>,
Stephen Warren <swarren@wwwdotorg.org>
Cc: linux-arm-kernel@lists.infradead.org,
linux-rpi-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, Lee Jones <lee@kernel.org>,
devicetree@vger.kernel.org,
Mike Turquette <mturquette@linaro.org>
Subject: Re: [PATCH 2/7] ARM: bcm2835: Add a Raspberry Pi-specific clock driver.
Date: Fri, 29 May 2015 12:30:36 -0700 [thread overview]
Message-ID: <87k2vrchb7.fsf@eliezer.anholt.net> (raw)
In-Reply-To: <20150528224828.GI24204@codeaurora.org>
[-- Attachment #1: Type: text/plain, Size: 2850 bytes --]
Stephen Boyd <sboyd@codeaurora.org> writes:
> On 05/28, Stephen Warren wrote:
>> On 05/18/2015 01:43 PM, Eric Anholt wrote:
>> > Unfortunately, the clock manager's registers are not accessible by the
>> > ARM, so we have to request that the firmware modify our clocks for us.
>> >
>> > This driver only registers the clocks at the point they are requested
>> > by a client driver. This is partially to support returning
>> > -EPROBE_DEFER when the firmware driver isn't supported yet, but it
>> > also avoids issues with disabling "unused" clocks due to them not yet
>> > being connected to their consumers in the DT.
>>
>> It looks like you forgot to CC the clock subsystem maintainers:
>>
>> M: Mike Turquette <mturquette@linaro.org>
>> M: Stephen Boyd <sboyd@codeaurora.org>
>>
>
> Thanks, except I don't have the full patch context here to review
> the patch.
>
>> The description above sounds like a neat solution, but has the
>> disadvantage that the clocks without a client won't show up in debugfs.
>> I wonder if the clock maintainers know of a better way?
>
> Can you mark them as CLK_IGNORE_UNUSED? The probe defer problem
> has a solution in sight (see more below).
>> > + init.flags = CLK_IS_ROOT;
>>
>> Is it possible to add clock parent information to the driver, so the
>> clocks are all hooked together into the correct tree, rather than all
>> looking like root clocks?
>>
>> One of the many reasons I didn't do anything FW-wise for the kernel was
>> the hope that such information would be forthcoming, and hence we could
>> have complete kernel drivers.
>>
>> > +void __init rpi_firmware_init_clock_provider(struct device_node *node)
>> > +{
>> > + /* We delay construction of our struct clks until get time,
>> > + * because we need to be able to return -EPROBE_DEFER if the
>> > + * firmware driver isn't up yet. clk core doesn't support
>> > + * re-probing on -EPROBE_DEFER, but callers of clk_get can.
>>
>> Oh, that's nasty. What would it take to fix the clock core to support
>> deferred probe? It really should.
>
> There are patches to support probe defer from clk_get() but they
> stalled because sunxi is needs to keep clocks on from their
> providing driver (termed "critical clocks"). If we can resolve
> the "critical clocks" thing then we should be able to support
> probe defer, unless we find other users of orphaned clk
> pointers.
Great! I'm certainly happy to switch to a normal registration of all my
clocks once -EPROBE_DEFER works from the clock provider init.
If those patches aren't landing this release, that also gives us a
release to wire up all the clock consumers in the DT before we get hit
by stable DT ABI, so we'll be able to give a nice limited set of
CLOCK_IGNORE_UNUSED in the flags when we transition.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 818 bytes --]
next prev parent reply other threads:[~2015-05-29 19:30 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-18 19:43 Raspberry Pi DT clocks series Eric Anholt
2015-05-18 19:43 ` [PATCH 1/7] dt/bindings: Add binding for the Raspberry Pi clock provider Eric Anholt
2015-05-28 21:46 ` Stephen Warren
2015-05-18 19:43 ` [PATCH 2/7] ARM: bcm2835: Add a Raspberry Pi-specific clock driver Eric Anholt
2015-05-19 3:05 ` Baruch Siach
2015-05-28 19:02 ` [PATCH 2/7 v2] " Eric Anholt
2015-05-28 22:02 ` [PATCH 2/7] " Stephen Warren
2015-05-28 22:48 ` Stephen Boyd
2015-05-29 19:30 ` Eric Anholt [this message]
2015-05-29 19:09 ` Eric Anholt
2015-05-29 21:02 ` Eric Anholt
2015-06-05 2:56 ` Stephen Warren
2015-05-18 19:43 ` [PATCH 3/7] ARM: bcm2835: Add DT for the firmware clocks driver Eric Anholt
2015-05-18 19:43 ` [PATCH 4/7] ARM: bcm2835: Drop never-used clock-frequency property of uart0 Eric Anholt
2015-05-18 19:43 ` [PATCH 5/7] ARM: bcm2835: Drop the fixed sys_pclk Eric Anholt
2015-05-28 22:05 ` Stephen Warren
2015-05-29 17:44 ` Eric Anholt
2015-05-18 19:43 ` [PATCH 6/7] ARM: bcm2835: Use the RPi firmware clocks for uart Eric Anholt
2015-05-18 19:43 ` [PATCH 7/7] ARM: bcm2835: Tie SPI clock to the core clock rate Eric Anholt
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=87k2vrchb7.fsf@eliezer.anholt.net \
--to=eric@anholt.net \
--cc=devicetree@vger.kernel.org \
--cc=lee@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rpi-kernel@lists.infradead.org \
--cc=mturquette@linaro.org \
--cc=sboyd@codeaurora.org \
--cc=swarren@wwwdotorg.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).