From: Kevin Hilman <khilman@ti.com>
To: Grant Likely <grant.likely@secretlab.ca>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>,
Alan Stern <stern@rowland.harvard.edu>,
Magnus Damm <magnus.damm@gmail.com>,
Linux-pm mailing list <linux-pm@lists.linux-foundation.org>,
Greg KH <greg@kroah.com>, LKML <linux-kernel@vger.kernel.org>,
Len Brown <lenb@kernel.org>
Subject: Re: [RFC][PATCH] Power domains for platform bus type
Date: Mon, 31 Jan 2011 14:44:19 -0800 [thread overview]
Message-ID: <87vd1466d8.fsf@ti.com> (raw)
In-Reply-To: <20110131222609.GC27856@angua.secretlab.ca> (Grant Likely's message of "Mon, 31 Jan 2011 15:26:09 -0700")
Grant Likely <grant.likely@secretlab.ca> writes:
> On Mon, Jan 31, 2011 at 11:16:51PM +0100, Rafael J. Wysocki wrote:
>> On Monday, January 31, 2011, Alan Stern wrote:
>> > On Mon, 31 Jan 2011, Rafael J. Wysocki wrote:
>> >
>> > > On Monday, January 31, 2011, Alan Stern wrote:
>> > > > On Sun, 30 Jan 2011, Rafael J. Wysocki wrote:
>> > > >
>> > > > > > One thing about this implementation is slightly questionable. The new
>> > > > > > power_domain callbacks were added to the __weak platform PM routines,
>> > > > > > which means they will have to be included in every overriding routine
>> > > > > > provided by a platform imiplementation.
>> > > > > >
>> > > > > > Would it be better to separate these things? Have the power_domain
>> > > > > > callbacks occur in a static outer function which then calls a public
>> > > > > > __weak inner function that can be overridden?
>> > > > >
>> > > > > That certainly is a good idea, but I wasn't sure how to do that. It looks
>> > > > > like I could keep the __weak functions as they are and modify
>> > > > > platform_dev_pm_ops instead to point to a new set of function that in turn
>> > > > > would call the __weak ones. For example, the .suspend pointer in
>> > > > > platform_dev_pm_ops might point to a new function, say
>> > > > > platform_pm_full_suspend() that would call the power domain functions and
>> > > > > the "original" platform_pm_suspend(). Is that what you mean?
>> > > >
>> > > > Yes. But what about the platform_bus_set_pm_ops() interface? Should
>> > > > platform-specific replacements for the pm_ops functions also include
>> > > > the power_domain callbacks?
>> > >
>> > > Well, whoever uses platform_bus_set_pm_ops(), he can simply prevent power
>> > > domains from being used by not defining them in the first place. :-)
>> >
>> > But what about the case where the user _does_ want to have power
>> > domains?
>>
>> Ah, OK. The caller of platform_bus_set_pm_ops() will replace the original
>> platform_dev_pm_ops with his own set of operations, so he will not see the
>> power domains.
>>
>> > Do you want to make the replacement routines responsible for
>> > invoking the power-domain callbacks, or should the platform core handle
>> > this automatically?
>>
>> Well, if someone replaces the entire platform_dev_pm_ops object, this means
>> that on his platform power management is substantially different from the
>> generic one. In that case, IMO, he should be responsible for handling all
>> of the subsystem-level aspects of power management, including power domains.
>
> Part of point of doing something like power_domain is to *get rid* of
> platform_bus_set_pm_ops(). It is a horrid, stop-gap interface that
> doesn't scale. I don't think much consideration needs to be made for
> users of platform_bus_set_pm_ops() in this regard.
As the author of platform_bus_set_pm_ops(), I humbly agree.
Also, the __weak functions here were obsoleted by
platform_bus_set_pm_ops(). Once Magnus moves to
platform_bus_set_pm_ops() (or this new interface) the __weak attributes
should be removed (c.f. commit log below[1] where
platform_bus_set_pm_ops() was added.)
Kevin
commit c64a0926710153b9d44c979d2942f4a8648fd74e
Author: Kevin Hilman <khilman@ti.com>
Date: Wed Aug 25 12:50:00 2010 -0700
driver core: platform_bus: allow runtime override of dev_pm_ops
Currently, the platform_bus allows customization of several of the
busses dev_pm_ops methods by using weak symbols so that platform code
can override them. The weak-symbol approach is not scalable when
wanting to support multiple platforms in a single kernel binary.
Instead, provide __init methods for platform code to customize the
dev_pm_ops methods at runtime.
NOTE: after these dynamic methods are merged, the weak symbols should
be removed from drivers/base/platform.c. AFAIK, this will only
affect SH and sh-mobile which should be converted to use this
runtime approach instead of the weak symbols. After SH &
sh-mobile are converted, the weak symobols could be removed.
next prev parent reply other threads:[~2011-01-31 22:44 UTC|newest]
Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-30 0:07 [RFC][PATCH] Power domains for platform bus type Rafael J. Wysocki
2011-01-30 16:03 ` Alan Stern
2011-01-30 16:03 ` Alan Stern
2011-01-30 22:39 ` Rafael J. Wysocki
2011-01-31 15:01 ` Alan Stern
2011-01-31 15:01 ` Alan Stern
2011-01-31 18:09 ` Rafael J. Wysocki
2011-01-31 18:09 ` Rafael J. Wysocki
2011-01-31 19:45 ` Alan Stern
2011-01-31 22:16 ` Rafael J. Wysocki
2011-01-31 22:16 ` Rafael J. Wysocki
2011-01-31 22:26 ` Grant Likely
2011-01-31 22:44 ` Kevin Hilman
2011-01-31 22:44 ` Kevin Hilman [this message]
2011-01-31 23:01 ` Rafael J. Wysocki
2011-01-31 23:01 ` Rafael J. Wysocki
2011-01-31 22:26 ` Grant Likely
2011-01-31 19:45 ` Alan Stern
2011-01-30 22:39 ` Rafael J. Wysocki
2011-01-31 12:05 ` Mark Brown
2011-01-31 12:05 ` Mark Brown
2011-01-31 22:59 ` Grant Likely
2011-01-31 22:59 ` Grant Likely
2011-01-31 23:10 ` Rafael J. Wysocki
2011-01-31 23:43 ` Kevin Hilman
2011-02-01 3:18 ` Grant Likely
2011-02-01 3:18 ` Grant Likely
2011-02-01 10:58 ` Rafael J. Wysocki
2011-02-01 10:58 ` Rafael J. Wysocki
2011-02-01 16:48 ` Kevin Hilman
2011-02-01 18:39 ` Rafael J. Wysocki
2011-02-01 18:39 ` Rafael J. Wysocki
2011-02-12 22:12 ` [RFC][PATCH 0/2] PM: Core power management modifications Rafael J. Wysocki
2011-02-12 22:12 ` Rafael J. Wysocki
2011-02-12 22:13 ` [RFC][PATCH 1/2] PM: Add support for device power domains Rafael J. Wysocki
2011-02-14 16:12 ` Alan Stern
2011-02-14 16:12 ` Alan Stern
2011-02-14 22:34 ` Rafael J. Wysocki
2011-02-14 22:34 ` Rafael J. Wysocki
2011-02-15 3:01 ` Alan Stern
2011-02-15 3:01 ` Alan Stern
2011-02-15 21:40 ` Rafael J. Wysocki
2011-02-15 21:40 ` Rafael J. Wysocki
2011-02-15 7:28 ` Magnus Damm
2011-02-15 7:28 ` Magnus Damm
2011-02-15 23:12 ` Rafael J. Wysocki
2011-02-15 23:12 ` Rafael J. Wysocki
2011-02-15 18:23 ` Kevin Hilman
2011-02-15 18:23 ` Kevin Hilman
2011-02-12 22:13 ` Rafael J. Wysocki
2011-02-12 22:14 ` [RFC][PATCH 2/2] PM: Make system-wide PM and runtime PM handle subsystems consistently Rafael J. Wysocki
2011-02-14 16:25 ` Alan Stern
2011-02-14 16:25 ` Alan Stern
2011-02-14 22:35 ` Rafael J. Wysocki
2011-02-14 22:35 ` Rafael J. Wysocki
2011-02-16 12:24 ` Rafael J. Wysocki
2011-02-16 12:24 ` Rafael J. Wysocki
2011-02-16 14:57 ` Alan Stern
2011-02-16 14:57 ` Alan Stern
2011-02-16 21:47 ` Rafael J. Wysocki
2011-02-16 21:47 ` Rafael J. Wysocki
2011-02-16 22:23 ` Alan Stern
2011-02-16 22:23 ` Alan Stern
2011-02-16 23:45 ` Rafael J. Wysocki
2011-02-16 23:45 ` Rafael J. Wysocki
2011-02-17 14:55 ` Alan Stern
2011-02-17 14:55 ` Alan Stern
2011-02-17 17:04 ` Greg KH
2011-02-17 17:04 ` Greg KH
2011-02-17 22:16 ` Rafael J. Wysocki
2011-02-17 22:16 ` Rafael J. Wysocki
2011-02-17 23:54 ` [PATCH] PM: Make system-wide PM and runtime PM treat " R. J. Wysocki
2011-02-17 23:54 ` R. J. Wysocki
2011-02-18 19:22 ` Greg KH
2011-02-18 20:14 ` Rafael J. Wysocki
2011-02-18 20:14 ` Rafael J. Wysocki
2011-02-18 19:22 ` Greg KH
2011-02-15 18:10 ` [RFC][PATCH 2/2] PM: Make system-wide PM and runtime PM handle " Kevin Hilman
2011-02-15 18:10 ` Kevin Hilman
2011-02-15 19:48 ` Grant Likely
2011-02-15 19:48 ` Grant Likely
2011-02-12 22:14 ` Rafael J. Wysocki
2011-02-01 16:48 ` [RFC][PATCH] Power domains for platform bus type Kevin Hilman
2011-02-01 3:40 ` Alan Stern
2011-02-01 3:40 ` Alan Stern
2011-01-31 23:43 ` Kevin Hilman
2011-01-31 23:10 ` Rafael J. Wysocki
2011-01-31 23:16 ` Kevin Hilman
2011-01-31 23:16 ` Kevin Hilman
2011-01-31 23:23 ` Grant Likely
2011-01-31 23:23 ` Grant Likely
2011-02-01 0:17 ` Kevin Hilman
2011-02-01 10:52 ` Rafael J. Wysocki
2011-02-01 10:52 ` Rafael J. Wysocki
2011-02-01 0:17 ` Kevin Hilman
-- strict thread matches above, loose matches on Subject: below --
2011-01-30 0:07 Rafael J. Wysocki
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=87vd1466d8.fsf@ti.com \
--to=khilman@ti.com \
--cc=grant.likely@secretlab.ca \
--cc=greg@kroah.com \
--cc=lenb@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=magnus.damm@gmail.com \
--cc=rjw@sisk.pl \
--cc=stern@rowland.harvard.edu \
/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.