From: "Rafael J. Wysocki" <rjw@rjwysocki.net>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: ksummit-discuss@lists.linuxfoundation.org
Subject: Re: [Ksummit-discuss] [TECH TOPIC] PM dependencies
Date: Sat, 24 May 2014 02:00:24 +0200 [thread overview]
Message-ID: <2705495.9EHqndMMf0@vostro.rjw.lan> (raw)
In-Reply-To: <CACRpkdbZ4es4oieLzHvhTVxLbNO8_jRCLen55E-RDPTVRc75Mw@mail.gmail.com>
On Friday, May 23, 2014 10:25:09 AM Linus Walleij wrote:
> On Fri, May 23, 2014 at 2:18 AM, Laurent Pinchart
> <laurent.pinchart@ideasonboard.com> wrote:
> > On Tuesday 20 May 2014 09:57:14 Kevin Hilman wrote:
>
> >> Alternatively, what would proably be even better would be that the
> >> sensor driver has a reference to the actual device that provides its
> >> input clock (possibly via a DT phandle?) so that the sensor driver can
> >> simply do a pm_runtime_get() on the device providing the clock.
> >
> > Isn't it better for the sensor DT node to reference its input clock through
> > the clocks property and enable/disable the clock on demand instead of
> > explicitly calling pm_runtime_(get|put) on the clock provider device ?
>
> This is tangent to another discussion we've had off and on whether
> a device's resources (clocks, regulators, GPIOs, pins, pwms, D/As...)
> should be handled explicitly by the driver or implicitly by e.g. a
> PM domain.
>
> It appears that currently we have bias such that for a discrete
> component (such as some sensor) soldered on a board with
> rails and stuff, these generally do explicit resource management
> with clk_prepare_enable() and friends.
>
> On the other hand there are some SoCs (OMAP especially but also
> some Reneasa SH stuff IIRC!) that does implicit resource management
> of devices on the SoC using PM domains.
>
> This is a typical example of implicit resource management:
> drivers/base/power/clock_ops.c
>
> As PM domains are really not just for SoCs the broader question
> of whether runtime resource management should be explicit using
> handles in the drivers or implicit by referencing PM domain pops up.
When I was adding PM domains to the PM core one of the concerns was
that the PM resources the drivers can access may not be independent and
using them would require synchronization between drivers. Using PM
domains is one of the ways to achieve that.
Also using PM domains helps to address the case when the same driver
needs to be used on different platforms with different PM configurations.
> The mixture of both that we have right now is a bit confusing,
> admittedly.
I suppose that this is for historical reasons mostly (different platforms
chose to do things differently and code duplication between them related
to handling analogous IP blocks in slightly different ways was less of
a concern in the past).
For driver portability, however, there has to be a level of indirection
between the driver and the PM features of the platform and PM domains can be
used for providing something like that.
Rafael
next prev parent reply other threads:[~2014-05-23 23:43 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-12 17:43 Laurent Pinchart
2014-05-12 17:51 ` Shuah Khan
2014-05-18 15:42 ` Mauro Carvalho Chehab
2014-05-12 18:09 ` Tomasz Figa
2014-05-12 20:14 ` Mark Brown
2014-05-12 20:27 ` Laurent Pinchart
2014-05-12 20:31 ` Mark Brown
2014-05-12 21:16 ` Tomasz Figa
2014-05-12 22:07 ` Mark Brown
2014-05-13 7:43 ` Daniel Vetter
2014-05-13 10:31 ` Laurent Pinchart
2014-05-13 14:26 ` Shuah Khan
2014-05-15 23:43 ` Laurent Pinchart
2014-05-19 1:00 ` Shuah Khan
2014-05-19 7:30 ` Geert Uytterhoeven
2014-05-13 22:27 ` Rafael J. Wysocki
2014-05-13 22:34 ` Rafael J. Wysocki
2014-05-14 12:59 ` Rafael J. Wysocki
2014-05-15 23:34 ` Laurent Pinchart
2014-05-20 16:57 ` Kevin Hilman
2014-05-20 18:51 ` Mark Brown
2014-05-21 9:26 ` Ulf Hansson
2014-05-21 11:16 ` Geert Uytterhoeven
2014-05-22 0:19 ` Rafael J. Wysocki
2014-05-22 10:14 ` Mark Brown
2014-05-23 23:15 ` Rafael J. Wysocki
2014-05-24 10:53 ` Mark Brown
2014-05-25 12:56 ` Rafael J. Wysocki
2014-05-22 17:35 ` Kevin Hilman
2014-05-23 23:26 ` Rafael J. Wysocki
2014-05-23 0:18 ` Laurent Pinchart
2014-05-23 0:39 ` Kevin Hilman
2014-05-23 8:32 ` Linus Walleij
2014-05-23 15:26 ` Kevin Hilman
2014-05-24 0:13 ` Rafael J. Wysocki
2014-05-24 0:08 ` Rafael J. Wysocki
2014-05-26 14:30 ` Peter De Schrijver
2014-05-23 8:25 ` Linus Walleij
2014-05-23 9:10 ` Ulf Hansson
2014-05-24 0:00 ` Rafael J. Wysocki [this message]
2014-05-15 22:45 ` Laurent Pinchart
2014-05-14 21:08 ` Kevin Hilman
2014-05-14 12:11 ` Rafael J. Wysocki
2014-05-14 11:57 ` Mark Brown
2014-05-14 12:32 ` Rafael J. Wysocki
2014-05-14 15:14 ` Mark Brown
2014-05-14 15:26 ` Laurent Pinchart
2014-05-14 15:40 ` Mark Brown
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=2705495.9EHqndMMf0@vostro.rjw.lan \
--to=rjw@rjwysocki.net \
--cc=ksummit-discuss@lists.linuxfoundation.org \
--cc=linus.walleij@linaro.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