<feed xmlns='http://www.w3.org/2005/Atom'>
<title>snowball/legacy-kernel.git/drivers/base, branch igloo-dev</title>
<subtitle>legacy kernel</subtitle>
<id>https://git.etezian.org/cgit.cgi/snowball/legacy-kernel.git/atom?h=igloo-dev</id>
<link rel='self' href='https://git.etezian.org/cgit.cgi/snowball/legacy-kernel.git/atom?h=igloo-dev'/>
<link rel='alternate' type='text/html' href='https://git.etezian.org/cgit.cgi/snowball/legacy-kernel.git/'/>
<updated>2011-10-27T14:35:15+00:00</updated>
<entry>
<title>PM: Limit race conditions between runtime PM and system sleep (v2)</title>
<updated>2011-10-27T14:35:15+00:00</updated>
<author>
<name>Rafael J. Wysocki</name>
<email>rjw@sisk.pl</email>
</author>
<published>2011-07-06T08:51:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.etezian.org/cgit.cgi/snowball/legacy-kernel.git/commit/?id=77e7fdb3a6630bf9104717470b1ade84788f4676'/>
<id>urn:sha1:77e7fdb3a6630bf9104717470b1ade84788f4676</id>
<content type='text'>
One of the roles of the PM core is to prevent different PM callbacks
executed for the same device object from racing with each other.
Unfortunately, after commit e8665002477f0278f84f898145b1f141ba26ee26
(PM: Allow pm_runtime_suspend() to succeed during system suspend)
runtime PM callbacks may be executed concurrently with system
suspend/resume callbacks for the same device.

The main reason for commit e8665002477f0278f84f898145b1f141ba26ee26
was that some subsystems and device drivers wanted to use runtime PM
helpers, pm_runtime_suspend() and pm_runtime_put_sync() in
particular, for carrying out the suspend of devices in their
.suspend() callbacks.  However, as it's been determined recently,
there are multiple reasons not to do so, inlcuding:

 * The caller really doesn't control the runtime PM usage counters,
   because user space can access them through sysfs and effectively
   block runtime PM.  That means using pm_runtime_suspend() or
   pm_runtime_get_sync() to suspend devices during system suspend
   may or may not work.

 * If a driver calls pm_runtime_suspend() from its .suspend()
   callback, it causes the subsystem's .runtime_suspend() callback to
   be executed, which leads to the call sequence:

   subsys-&gt;suspend(dev)
      driver-&gt;suspend(dev)
         pm_runtime_suspend(dev)
            subsys-&gt;runtime_suspend(dev)

   recursive from the subsystem's point of view.  For some subsystems
   that may actually work (e.g. the platform bus type), but for some
   it will fail in a rather spectacular fashion (e.g. PCI).  In each
   case it means a layering violation.

 * Both the subsystem and the driver can provide .suspend_noirq()
   callbacks for system suspend that can do whatever the
   .runtime_suspend() callbacks do just fine, so it really isn't
   necessary to call pm_runtime_suspend() during system suspend.

 * The runtime PM's handling of wakeup devices is usually different
   from the system suspend's one, so .runtime_suspend() may simply be
   inappropriate for system suspend.

 * System suspend is supposed to work even if CONFIG_PM_RUNTIME is
   unset.

 * The runtime PM workqueue is frozen before system suspend, so if
   whatever the driver is going to do during system suspend depends
   on it, that simply won't work.

Still, there is a good reason to allow pm_runtime_resume() to
succeed during system suspend and resume (for instance, some
subsystems and device drivers may legitimately use it to ensure that
their devices are in full-power states before suspending them).
Moreover, there is no reason to prevent runtime PM callbacks from
being executed in parallel with the system suspend/resume .prepare()
and .complete() callbacks and the code removed by commit
e8665002477f0278f84f898145b1f141ba26ee26 went too far in this
respect.  On the other hand, runtime PM callbacks, including
.runtime_resume(), must not be executed during system suspend's
"late" stage of suspending devices and during system resume's "early"
device resume stage.

Taking all of the above into consideration, make the PM core
acquire a runtime PM reference to every device and resume it if
there's a runtime PM resume request pending right before executing
the subsystem-level .suspend() callback for it.  Make the PM core
drop references to all devices right after executing the
subsystem-level .resume() callbacks for them.  Additionally,
make the PM core disable the runtime PM framework for all devices
during system suspend, after executing the subsystem-level .suspend()
callbacks for them, and enable the runtime PM framework for all
devices during system resume, right before executing the
subsystem-level .resume() callbacks for them.

Conflicts:
	drivers/base/power/main.c

Change-Id: I184431a2e6663222685098d869272b5e84b93c11
Signed-off-by: Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
Acked-by: Kevin Hilman &lt;khilman@ti.com&gt;
Signed-off-by: Ulf Hansson &lt;ulf.hansson@stericsson.com&gt;
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/35337
Reviewed-by: QABUILD
Reviewed-by: Linus WALLEIJ &lt;linus.walleij@stericsson.com&gt;
</content>
</entry>
<entry>
<title>PM: Introduce generic "noirq" callback routines for subsystems (v2)</title>
<updated>2011-10-27T14:34:55+00:00</updated>
<author>
<name>Rafael J. Wysocki</name>
<email>rjw@sisk.pl</email>
</author>
<published>2011-07-01T20:12:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.etezian.org/cgit.cgi/snowball/legacy-kernel.git/commit/?id=4653514caff9ee1a83a6ad40d71a1252292693b1'/>
<id>urn:sha1:4653514caff9ee1a83a6ad40d71a1252292693b1</id>
<content type='text'>
Introduce generic "noirq" power management callback routines for
subsystems in addition to the "regular" generic PM callback routines.

The new routines will be used, among other things, for implementing
system-wide PM transitions support for generic PM domains.

Signed-off-by: Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
Change-Id: I345a1c6d221b402f349837581681bc7b5c464ea9
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/35335
Reviewed-by: QABUILD
Reviewed-by: Linus WALLEIJ &lt;linus.walleij@stericsson.com&gt;
Tested-by: Ulf HANSSON &lt;ulf.hansson@stericsson.com&gt;
</content>
</entry>
<entry>
<title>Revert duplicate merge of "PM: Add support for device power domains"</title>
<updated>2011-09-19T14:00:16+00:00</updated>
<author>
<name>Rabin Vincent</name>
<email>rabin.vincent@stericsson.com</email>
</author>
<published>2011-08-26T08:44:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.etezian.org/cgit.cgi/snowball/legacy-kernel.git/commit/?id=4c7a098a93c548f750c7c3f6c6f13a1be151783d'/>
<id>urn:sha1:4c7a098a93c548f750c7c3f6c6f13a1be151783d</id>
<content type='text'>
This reverts commit 56e7ee03819e3a43da7eb13428c19714c4d914c2:

commit 56e7ee03819e3a43da7eb13428c19714c4d914c2
Author:     Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
AuthorDate: Wed Feb 16 21:53:17 2011 +0100
Commit:     Philippe Langlais &lt;philippe.langlais@linaro.org&gt;
CommitDate: Fri Jul 22 15:36:46 2011 +0200

    PM: Add support for device power domains

The correct commit is already present in 3.0, and the above was
incorrectly merged, leading to power domain callbacks being
called twice.  The correct commit is:

commit 7538e3db6e015e890825fbd9f8659952896ddd5b
Author:     Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
AuthorDate: Wed Feb 16 21:53:17 2011 +0100
Commit:     Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
CommitDate: Tue Mar 15 00:43:16 2011 +0100

    PM: Add support for device power domains
</content>
</entry>
<entry>
<title>Merge linux-linaro-3.0-2011.07-1-android-1 into..</title>
<updated>2011-09-19T13:40:54+00:00</updated>
<author>
<name>Ulf Hansson</name>
<email>ulf.hansson@stericsson.com</email>
</author>
<published>2011-09-19T13:40:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.etezian.org/cgit.cgi/snowball/legacy-kernel.git/commit/?id=9ab67899804448f2bea4087bb6e9e4d952a79258'/>
<id>urn:sha1:9ab67899804448f2bea4087bb6e9e4d952a79258</id>
<content type='text'>
..linux-linaro-3.0-2011.07-1_glk3.0

Conflicts:
	arch/arm/common/Makefile
	drivers/misc/Kconfig
	drivers/misc/Makefile
	kernel/printk.c

Change-Id: I126f34edb1879981909072beefb2738cad26f951
</content>
</entry>
<entry>
<title>Export SoC info through sysfs</title>
<updated>2011-09-19T13:14:56+00:00</updated>
<author>
<name>Maxime Coquelin</name>
<email>maxime.coquelin-nonst@stericsson.com</email>
</author>
<published>2011-03-07T10:26:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.etezian.org/cgit.cgi/snowball/legacy-kernel.git/commit/?id=2dfd24846ee129fb59fe640ec6e3e1f401d69a67'/>
<id>urn:sha1:2dfd24846ee129fb59fe640ec6e3e1f401d69a67</id>
<content type='text'>
Common base to export System-on-Chip related informations through sysfs.

Creation of a "socinfo" directory under /sys/.
Creation of SoC information entries.

Signed-off-by: Maxime COQUELIN &lt;maxime.coquelin-nonst@stericsson.com&gt;
Change-Id: I8f9cbccbed07293d26974e9df3bf1102d42e561c
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/18178
Reviewed-by: Linus WALLEIJ &lt;linus.walleij@stericsson.com&gt;
</content>
</entry>
<entry>
<title>PM: Add support for device power domains</title>
<updated>2011-09-19T13:14:37+00:00</updated>
<author>
<name>Rafael J. Wysocki</name>
<email>rjw@sisk.pl</email>
</author>
<published>2011-02-16T20:53:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.etezian.org/cgit.cgi/snowball/legacy-kernel.git/commit/?id=c81bda3b18b40b4266935094cbbc2290fa14b165'/>
<id>urn:sha1:c81bda3b18b40b4266935094cbbc2290fa14b165</id>
<content type='text'>
The platform bus type is often used to handle Systems-on-a-Chip (SoC)
where all devices are represented by objects of type struct
platform_device.  In those cases the same "platform" device driver
may be used with multiple different system configurations, but the
actions needed to put the devices it handles into a low-power state
and back into the full-power state may depend on the design of the
given SoC.  The driver, however, cannot possibly include all the
information necessary for the power management of its device on all
the systems it is used with.  Moreover, the device hierarchy in its
current form also is not suitable for representing this kind of
information.

The patch below attempts to address this problem by introducing
objects of type struct dev_power_domain that can be used for
representing power domains within a SoC.  Every struct
dev_power_domain object provides a sets of device power
management callbacks that can be used to perform what's needed for
device power management in addition to the operations carried out by
the device's driver and subsystem.

Namely, if a struct dev_power_domain object is pointed to by the
pwr_domain field in a struct device, the callbacks provided by its
ops member will be executed in addition to the corresponding
callbacks provided by the device's subsystem and driver during all
power transitions.

Signed-off-by: Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
Tested-and-acked-by: Kevin Hilman &lt;khilman@ti.com&gt;

ST-Ericsson Linux next: -
ST-Ericsson ID: ER323382
ST-Ericsson FOSS-OUT ID: Trivial

Change-Id: I1f21456339aaa75905694bf4d87912b762c9d85e
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/16674
Tested-by: Rabin VINCENT &lt;rabin.vincent@stericsson.com&gt;
Reviewed-by: Jonas ABERG &lt;jonas.aberg@stericsson.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'upstream/linaro-3.0' into linaro-android-3.0</title>
<updated>2011-07-25T16:58:06+00:00</updated>
<author>
<name>John Stultz</name>
<email>john.stultz@linaro.org</email>
</author>
<published>2011-07-25T16:58:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.etezian.org/cgit.cgi/snowball/legacy-kernel.git/commit/?id=21a602b5cdc203cbcf8bbeeb26edeb3de7c65955'/>
<id>urn:sha1:21a602b5cdc203cbcf8bbeeb26edeb3de7c65955</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge commit 'v3.0-rc7' into android-3.0</title>
<updated>2011-07-13T03:10:37+00:00</updated>
<author>
<name>Colin Cross</name>
<email>ccross@android.com</email>
</author>
<published>2011-07-13T03:10:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.etezian.org/cgit.cgi/snowball/legacy-kernel.git/commit/?id=75c56a81116e51c5cf15c0641906d0745188cd16'/>
<id>urn:sha1:75c56a81116e51c5cf15c0641906d0745188cd16</id>
<content type='text'>
</content>
</entry>
<entry>
<title>mm: Move definition of MIN_MEMORY_BLOCK_SIZE to a header</title>
<updated>2011-07-12T01:08:01+00:00</updated>
<author>
<name>Benjamin Herrenschmidt</name>
<email>benh@kernel.crashing.org</email>
</author>
<published>2011-06-14T00:57:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.etezian.org/cgit.cgi/snowball/legacy-kernel.git/commit/?id=a63fdc5156f2ef5690b6cf03d72b0c4917efbba7'/>
<id>urn:sha1:a63fdc5156f2ef5690b6cf03d72b0c4917efbba7</id>
<content type='text'>
The macro MIN_MEMORY_BLOCK_SIZE is currently defined twice in two .c
files, and I need it in a third one to fix a powerpc bug, so let's
first move it into a header

Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Acked-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>PM: Reintroduce dropped call to check_wakeup_irqs</title>
<updated>2011-07-11T08:51:49+00:00</updated>
<author>
<name>Colin Cross</name>
<email>ccross@android.com</email>
</author>
<published>2011-07-11T08:51:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.etezian.org/cgit.cgi/snowball/legacy-kernel.git/commit/?id=887596224cca4dc4669c53e4d7a33fcfc9d9e823'/>
<id>urn:sha1:887596224cca4dc4669c53e4d7a33fcfc9d9e823</id>
<content type='text'>
Patch 2e711c04dbbf7a7732a3f7073b1fc285d12b369d
(PM: Remove sysdev suspend, resume and shutdown operations)
deleted sysdev_suspend(), which was being relied on to call
check_wakeup_irqs() in suspend.  If check_wakeup_irqs() is not
called, wake interrupts that are pending when suspend is
entered may be lost.  It also breaks IRQCHIP_MASK_ON_SUSPEND,
which is handled in check_wakeup_irqs().

This patch adds a call to check_wakeup_irqs() in syscore_suspend(),
similar to what was deleted in sysdev_suspend().

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