From: Ben Dooks <ben.dooks@codethink.co.uk>
To: linux-sh@vger.kernel.org
Subject: Re: [PATCH] ARM: shmobile: compile drivers/sh for CONFIG_ARCH_SHMOBILE_MULTI
Date: Mon, 20 Jan 2014 12:01:00 +0000 [thread overview]
Message-ID: <52DD0FFC.8020307@codethink.co.uk> (raw)
In-Reply-To: <1389367095-7760-1-git-send-email-ben.dooks@codethink.co.uk>
On 20/01/14 11:47, Mark Brown wrote:
> On Sun, Jan 19, 2014 at 10:44:53PM +0100, Laurent Pinchart wrote:
>> On Thursday 16 January 2014 17:25:09 Ben Dooks wrote:
>
>>> I was having a think, and how about adding the following to each
>>> driver that expects clock management to happen for it, such as the
>>> following in the probe sequence:
>
>>> pm_runtime_manage_clock(dev);
>
>>> This would mean the following:
>
>>> - People would know a driver had its clock managed elsewhere
>>> - You couldn't build a system with the clock_ops disabled.
>>> - A system where a mix of drivers where used would work fine
>>> - drivers/sh/pm_runtime.c could be deleted too.
>
>> That sounds like a good idea to me. I like how drivers will be responsible for
>> explicitly delegating clock handling to generic code. This combines simplicity
>> with flexibility, and doesn't hide clock handling.
>
>> Mark, Rafael, any opinion ?
>
> I think that just makes things more complicated and isn't adding
> anything over pm_runtime_enable(), it's just boilerplate code. In
> theory essentially every driver running on platforms which don't have
> explicit management of core IP clocks ought to be calling this since
> potentially the IP might be deployed on another platform which does have
> clock management (this does actually happen with things like the
> DesignWare IPs) and it doesn't do anything like say which clocks are
> expected to be managed in this way which is another thing that can come
> up when moving devices between platforms.
That sounds like a real headache where you have two sets of code
looking at possibly the same clocks, and behaving differently between
different platforms.
> I'm also struggling to see how it provides any sort of build time
> protection, it would allow the generation of a warning at runtime at
> best.
If you don't have the code it WILL NOT LINK. At the moment it is
entirely possible to link a kernel which will produce a set of confusing
errors as drivers fail to initialise at startup.
We've already had other people run into the issue where they do not
know why a driver is failing to work (rcar-thermal is one) as the code
that was managing the clock for it magically vanished during the
development cycle.
> As far as I can tell the problem that Ben has seen here is that the
> platform really, really needs the code for its power domains running to
> be functional (this doesn't seem unreasonable and may not be related to
> clocks, this may be required to have the IPs powered up at all). I'd
> expect this is something for the platform to sort out rather than
> something for individual drivers to have to carry code for.
What's power domains got to do with this? You keep bringing this up
but the error is purely to do with clock management. The code happens
to be sitting in the drivers/base/pm directory, but could easily sit
elsewhere.
> If it was going to be drivers carrying code for this I would expect it
> to be something like providing a list of clocks to be managed along with
> runtime PM - this would also make the code more widely applicable since
> it's quite common for the runtime PM callbacks to do nothing more than
> just enable and disable clocks.
If we are really saying that bus clocks should not be managed
by the drivers, then we should just enable this across the whole
kernel and remove the management from any extant drivers (or make
it so that any drivers that must manage their bus clocks have a
call to do so).
--
Ben Dooks http://www.codethink.co.uk/
Senior Engineer Codethink - Providing Genius
next prev parent reply other threads:[~2014-01-20 12:01 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-10 15:18 [PATCH] ARM: shmobile: compile drivers/sh for CONFIG_ARCH_SHMOBILE_MULTI Ben Dooks
2014-01-11 13:06 ` Ben Dooks
2014-01-12 21:54 ` Laurent Pinchart
2014-01-12 22:01 ` Laurent Pinchart
2014-01-13 6:45 ` Ben Dooks
2014-01-13 22:37 ` Laurent Pinchart
2014-01-17 0:49 ` Mark Brown
2014-01-13 0:30 ` Simon Horman
2014-01-13 6:23 ` Ben Dooks
2014-01-13 9:28 ` Geert Uytterhoeven
2014-01-13 9:35 ` Ben Dooks
2014-01-13 9:47 ` Geert Uytterhoeven
2014-01-14 13:56 ` Ben Dooks
2014-01-14 23:55 ` Simon Horman
2014-01-15 19:46 ` Laurent Pinchart
2014-01-16 10:38 ` Ben Dooks
2014-01-16 17:25 ` Ben Dooks
2014-01-19 21:44 ` Laurent Pinchart
2014-01-20 11:47 ` Mark Brown
2014-01-20 12:01 ` Ben Dooks [this message]
2014-01-20 12:54 ` Mark Brown
2014-01-20 13:19 ` Ben Dooks
2014-01-20 15:48 ` Laurent Pinchart
2014-01-20 15:56 ` Mark Brown
2014-01-20 22:52 ` Laurent Pinchart
2014-03-11 19:15 ` Geert Uytterhoeven
2014-03-12 14:18 ` Laurent Pinchart
2014-03-12 15:28 ` Laurent Pinchart
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=52DD0FFC.8020307@codethink.co.uk \
--to=ben.dooks@codethink.co.uk \
--cc=linux-sh@vger.kernel.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).