<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/base/power/Makefile, branch v3.4.83</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/base/power/Makefile?h=v3.4.83</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/base/power/Makefile?h=v3.4.83'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2011-12-01T20:47:40Z</updated>
<entry>
<title>PM / Domains: Add device stop governor function (v4)</title>
<updated>2011-12-01T20:47:40Z</updated>
<author>
<name>Rafael J. Wysocki</name>
<email>rjw@sisk.pl</email>
</author>
<published>2011-11-30T23:02:05Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b02c999ac325e977585abeb4caf6e0a2ee21e30b'/>
<id>urn:sha1:b02c999ac325e977585abeb4caf6e0a2ee21e30b</id>
<content type='text'>
Add a function deciding whether or not devices should be stopped in
pm_genpd_runtime_suspend() depending on their PM QoS constraints
and stop/start timing values.  Make it possible to add information
used by this function to device objects.

Signed-off-by: Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
Acked-by: Magnus Damm &lt;damm@opensource.se&gt;
</content>
</entry>
<entry>
<title>PM QoS: Implement per-device PM QoS constraints</title>
<updated>2011-08-25T13:35:41Z</updated>
<author>
<name>Jean Pihet</name>
<email>j-pihet@ti.com</email>
</author>
<published>2011-08-25T13:35:41Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=91ff4cb803df6de9114351b9f2f0f39f397ee03e'/>
<id>urn:sha1:91ff4cb803df6de9114351b9f2f0f39f397ee03e</id>
<content type='text'>
Implement the per-device PM QoS constraints by creating a device
PM QoS API, which calls the PM QoS constraints management core code.

The per-device latency constraints data strctures are stored
in the device dev_pm_info struct.

The device PM code calls the init and destroy of the per-device constraints
data struct in order to support the dynamic insertion and removal of the
devices in the system.

To minimize the data usage by the per-device constraints, the data struct
is only allocated at the first call to dev_pm_qos_add_request.
The data is later free'd when the device is removed from the system.
A global mutex protects the constraints users from the data being
allocated and free'd.

Signed-off-by: Jean Pihet &lt;j-pihet@ti.com&gt;
Reviewed-by: Kevin Hilman &lt;khilman@ti.com&gt;
Signed-off-by: Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
</content>
</entry>
<entry>
<title>PM: Reference counting of power.subsys_data</title>
<updated>2011-08-25T13:34:01Z</updated>
<author>
<name>Rafael J. Wysocki</name>
<email>rjw@sisk.pl</email>
</author>
<published>2011-08-25T13:34:01Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ef27bed1870dbd5fd363ff5ec51eebd5a695e277'/>
<id>urn:sha1:ef27bed1870dbd5fd363ff5ec51eebd5a695e277</id>
<content type='text'>
Since the power.subsys_data device field will be used by multiple
filesystems, introduce a reference counting mechanism for it to avoid
freeing it prematurely or changing its value at a wrong time.

Make the PM clocks management code that currently is the only user of
power.subsys_data use the new reference counting.

Signed-off-by: Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
</content>
</entry>
<entry>
<title>PM / Domains: Support for generic I/O PM domains (v8)</title>
<updated>2011-07-02T12:29:55Z</updated>
<author>
<name>Rafael J. Wysocki</name>
<email>rjw@sisk.pl</email>
</author>
<published>2011-07-01T20:12:45Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f721889ff65afa6243c463832c74dee3bed418d5'/>
<id>urn:sha1:f721889ff65afa6243c463832c74dee3bed418d5</id>
<content type='text'>
Introduce common headers, helper functions and callbacks allowing
platforms to use simple generic power domains for runtime power
management.

Introduce struct generic_pm_domain to be used for representing
power domains that each contain a number of devices and may be
parent domains or subdomains with respect to other power domains.
Among other things, this structure includes callbacks to be
provided by platforms for performing specific tasks related to
power management (i.e. -&gt;stop_device() may disable a device's
clocks, while -&gt;start_device() may enable them, -&gt;power_off() is
supposed to remove power from the entire power domain
and -&gt;power_on() is supposed to restore it).

Introduce functions that can be used as power domain runtime PM
callbacks, pm_genpd_runtime_suspend() and pm_genpd_runtime_resume(),
as well as helper functions for the initialization of a power
domain represented by a struct generic_power_domain object,
adding a device to or removing a device from it and adding or
removing subdomains.

Introduce configuration option CONFIG_PM_GENERIC_DOMAINS to be
selected by the platforms that want to use the new code.

Signed-off-by: Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
Acked-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
Reviewed-by: Kevin Hilman &lt;khilman@ti.com&gt;
</content>
</entry>
<entry>
<title>PM: Remove CONFIG_PM_VERBOSE</title>
<updated>2011-05-17T21:25:10Z</updated>
<author>
<name>Rafael J. Wysocki</name>
<email>rjw@sisk.pl</email>
</author>
<published>2011-05-17T21:25:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c650da23d59d2c82307380414606774c6d49b8bd'/>
<id>urn:sha1:c650da23d59d2c82307380414606774c6d49b8bd</id>
<content type='text'>
Now that we have CONFIG_DYNAMIC_DEBUG there is no need for yet
another flag causing dev_dbg() and pr_debug() statements in the
core PM code to produce output.  Moreover, CONFIG_PM_VERBOSE
causes so much output to be generated that it's not really useful
and almost no one sets it.

References: https://bugzilla.kernel.org/show_bug.cgi?id=23182
Signed-off-by: Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
</content>
</entry>
<entry>
<title>PM / Runtime: Generic clock manipulation rountines for runtime PM (v6)</title>
<updated>2011-04-29T22:25:44Z</updated>
<author>
<name>Rafael J. Wysocki</name>
<email>rjw@sisk.pl</email>
</author>
<published>2011-04-29T22:25:44Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=85eb8c8d0b0900c073b0e6f89979ac9c439ade1a'/>
<id>urn:sha1:85eb8c8d0b0900c073b0e6f89979ac9c439ade1a</id>
<content type='text'>
Many different platforms and subsystems may want to disable device
clocks during suspend and enable them during resume which is going to
be done in a very similar way in all those cases.  For this reason,
provide generic routines for the manipulation of device clocks during
suspend and resume.

Convert the ARM shmobile platform to using the new routines.

Signed-off-by: Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
</content>
</entry>
<entry>
<title>PM: Remove CONFIG_PM_OPS</title>
<updated>2011-03-14T23:43:15Z</updated>
<author>
<name>Rafael J. Wysocki</name>
<email>rjw@sisk.pl</email>
</author>
<published>2011-02-10T23:06:54Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=aa33860158114d0df3c7997bc1dd41c0168e1c2a'/>
<id>urn:sha1:aa33860158114d0df3c7997bc1dd41c0168e1c2a</id>
<content type='text'>
After redefining CONFIG_PM to depend on (CONFIG_PM_SLEEP ||
CONFIG_PM_RUNTIME) the CONFIG_PM_OPS option is redundant and can be
replaced with CONFIG_PM.

Signed-off-by: Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
</content>
</entry>
<entry>
<title>PM: Introduce library for device-specific OPPs (v7)</title>
<updated>2010-10-16T23:57:50Z</updated>
<author>
<name>Nishanth Menon</name>
<email>nm@ti.com</email>
</author>
<published>2010-10-12T22:13:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e1f60b292ffd61151403327aa19ff7a1871820bd'/>
<id>urn:sha1:e1f60b292ffd61151403327aa19ff7a1871820bd</id>
<content type='text'>
SoCs have a standard set of tuples consisting of frequency and
voltage pairs that the device will support per voltage domain. These
are called Operating Performance Points or OPPs. The actual
definitions of OPP varies over silicon versions. For a specific domain,
we can have a set of {frequency, voltage} pairs. As the kernel boots
and more information is available, a default set of these are activated
based on the precise nature of device. Further on operation, based on
conditions prevailing in the system (such as temperature), some OPP
availability may be temporarily controlled by the SoC frameworks.

To implement an OPP, some sort of power management support is necessary
hence this library depends on CONFIG_PM.

Contributions include:
Sanjeev Premi for the initial concept:
	http://patchwork.kernel.org/patch/50998/
Kevin Hilman for converting original design to device-based.
Kevin Hilman and Paul Walmsey for cleaning up many of the function
abstractions, improvements and data structure handling.
Romit Dasgupta for using enums instead of opp pointers.
Thara Gopinath, Eduardo Valentin and Vishwanath BS for fixes and
cleanups.
Linus Walleij for recommending this layer be made generic for usage
in other architectures beyond OMAP and ARM.
Mark Brown, Andrew Morton, Rafael J. Wysocki, Paul E. McKenney for
valuable improvements.

Discussions and comments from:
http://marc.info/?l=linux-omap&amp;m=126033945313269&amp;w=2
http://marc.info/?l=linux-omap&amp;m=125482970102327&amp;w=2
http://marc.info/?t=125809247500002&amp;r=1&amp;w=2
http://marc.info/?l=linux-omap&amp;m=126025973426007&amp;w=2
http://marc.info/?t=128152609200064&amp;r=1&amp;w=2
http://marc.info/?t=128468723000002&amp;r=1&amp;w=2
incorporated.

v1: http://marc.info/?t=128468723000002&amp;r=1&amp;w=2

Signed-off-by: Nishanth Menon &lt;nm@ti.com&gt;
Signed-off-by: Kevin Hilman &lt;khilman@deeprootsystems.com&gt;
Signed-off-by: Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
</content>
</entry>
<entry>
<title>PM: Make it possible to avoid races between wakeup and system sleep</title>
<updated>2010-07-18T23:58:48Z</updated>
<author>
<name>Rafael J. Wysocki</name>
<email>rjw@sisk.pl</email>
</author>
<published>2010-07-05T20:43:53Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c125e96f044427f38d106fab7bc5e4a5e6a18262'/>
<id>urn:sha1:c125e96f044427f38d106fab7bc5e4a5e6a18262</id>
<content type='text'>
One of the arguments during the suspend blockers discussion was that
the mainline kernel didn't contain any mechanisms making it possible
to avoid races between wakeup and system suspend.

Generally, there are two problems in that area.  First, if a wakeup
event occurs exactly when /sys/power/state is being written to, it
may be delivered to user space right before the freezer kicks in, so
the user space consumer of the event may not be able to process it
before the system is suspended.  Second, if a wakeup event occurs
after user space has been frozen, it is not generally guaranteed that
the ongoing transition of the system into a sleep state will be
aborted.

To address these issues introduce a new global sysfs attribute,
/sys/power/wakeup_count, associated with a running counter of wakeup
events and three helper functions, pm_stay_awake(), pm_relax(), and
pm_wakeup_event(), that may be used by kernel subsystems to control
the behavior of this attribute and to request the PM core to abort
system transitions into a sleep state already in progress.

The /sys/power/wakeup_count file may be read from or written to by
user space.  Reads will always succeed (unless interrupted by a
signal) and return the current value of the wakeup events counter.
Writes, however, will only succeed if the written number is equal to
the current value of the wakeup events counter.  If a write is
successful, it will cause the kernel to save the current value of the
wakeup events counter and to abort the subsequent system transition
into a sleep state if any wakeup events are reported after the write
has returned.

[The assumption is that before writing to /sys/power/state user space
will first read from /sys/power/wakeup_count.  Next, user space
consumers of wakeup events will have a chance to acknowledge or
veto the upcoming system transition to a sleep state.  Finally, if
the transition is allowed to proceed, /sys/power/wakeup_count will
be written to and if that succeeds, /sys/power/state will be written
to as well.  Still, if any wakeup events are reported to the PM core
by kernel subsystems after that point, the transition will be
aborted.]

Additionally, put a wakeup events counter into struct dev_pm_info and
make these per-device wakeup event counters available via sysfs,
so that it's possible to check the activity of various wakeup event
sources within the kernel.

To illustrate how subsystems can use pm_wakeup_event(), make the
low-level PCI runtime PM wakeup-handling code use it.

Signed-off-by: Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
Acked-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
Acked-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
Acked-by: markgross &lt;markgross@thegnar.org&gt;
Reviewed-by: Alan Stern &lt;stern@rowland.harvard.edu&gt;
</content>
</entry>
<entry>
<title>PM: Provide generic subsystem-level callbacks</title>
<updated>2010-03-06T20:28:37Z</updated>
<author>
<name>Rafael J. Wysocki</name>
<email>rjw@sisk.pl</email>
</author>
<published>2010-03-06T20:28:37Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d690b2cd222afc75320b9b8e9da7df02e9e630ca'/>
<id>urn:sha1:d690b2cd222afc75320b9b8e9da7df02e9e630ca</id>
<content type='text'>
There are subsystems whose power management callbacks only need to
invoke the callbacks provided by device drivers.  Still, their system
sleep PM callbacks should play well with the runtime PM callbacks,
so that devices suspended at run time can be left in that state for
a system sleep transition.

Provide a set of generic PM callbacks for such subsystems and
define convenience macros for populating dev_pm_ops structures.

Signed-off-by: Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
</content>
</entry>
</feed>
