<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/acpi/device_pm.c, branch linux-3.17.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.17.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.17.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2014-12-06T23:57:28Z</updated>
<entry>
<title>ACPI / PM: Ignore wakeup setting if the ACPI companion can't wake up</title>
<updated>2014-12-06T23:57:28Z</updated>
<author>
<name>Rafael J. Wysocki</name>
</author>
<published>2014-11-19T00:44:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0fbfdd1bd3ecdf5d2a10a1d19d0124d0d4b847ca'/>
<id>urn:sha1:0fbfdd1bd3ecdf5d2a10a1d19d0124d0d4b847ca</id>
<content type='text'>
commit 78579b7c7eb45f0e7ec5e9437087ed21749f9a9c upstream.

As reported by Dmitry, on some Chromebooks there are devices with
corresponding ACPI objects and with unusual system wakeup
configuration.  Namely, they technically are wakeup-capable, but the
wakeup is handled via a platform-specific out-of-band mechanism and
the ACPI PM layer has no information on the wakeup capability.  As
a result, device_may_wakeup(dev) called from acpi_dev_suspend_late()
returns 'true' for those devices, but the wakeup.flags.valid flag is
unset for the corresponding ACPI device objects, so acpi_device_wakeup()
reproducibly fails for them causing acpi_dev_suspend_late() to return
an error code.  The entire system suspend is then aborted and the
machines in question cannot suspend at all.

Address the problem by ignoring the device_may_wakeup(dev) return
value in acpi_dev_suspend_late() if the ACPI companion of the device
being handled has wakeup.flags.valid unset (in which case it is clear
that the wakeup is supposed to be handled by other means).

This fixes a regression introduced by commit a76e9bd89ae7 (i2c:
attach/detach I2C client device to the ACPI power domain) as the
affected systems could suspend and resume successfully before that
commit.

Fixes: a76e9bd89ae7 (i2c: attach/detach I2C client device to the ACPI power domain)
Reported-by: Dmitry Torokhov &lt;dtor@chromium.org&gt;
Reviewed-by: Dmitry Torokhov &lt;dtor@chromium.org&gt;
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ACPI: invoke acpi_device_wakeup() with correct parameters</title>
<updated>2014-11-14T18:10:32Z</updated>
<author>
<name>Zhang Rui</name>
</author>
<published>2014-10-23T12:20:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=134259105d18f9355b78cf1b2048192b5d63b2af'/>
<id>urn:sha1:134259105d18f9355b78cf1b2048192b5d63b2af</id>
<content type='text'>
commit 67598a1d3140a66f57aa6bcb8d22c4c2b7e910f5 upstream.

Fix a bug that invokes acpi_device_wakeup() with wrong parameters.

Fixes: f35cec255557 (ACPI / PM: Always enable wakeup GPEs when enabling device wakeup)
Signed-off-by: Zhang Rui &lt;rui.zhang@intel.com&gt;
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ACPI / PM: Use ACPI_COMPANION() instead of ACPI_HANDLE()</title>
<updated>2014-07-22T23:01:41Z</updated>
<author>
<name>Rafael J. Wysocki</name>
</author>
<published>2014-07-22T23:01:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=17653a3e098dc20ae1db7459344a81c386625696'/>
<id>urn:sha1:17653a3e098dc20ae1db7459344a81c386625696</id>
<content type='text'>
The ACPI_HANDLE() macro evaluates ACPI_COMPANION() internally to
return the handle of the device's ACPI companion, so it is much
more straightforward and efficient to use ACPI_COMPANION()
directly to obtain the device's ACPI companion object instead of
using ACPI_HANDLE() and acpi_bus_get_device() on the returned
handle for the same thing.

Do that in three places in the ACPI device PM code.

Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</content>
</entry>
<entry>
<title>ACPI / PM: Always enable wakeup GPEs when enabling device wakeup</title>
<updated>2014-07-22T23:00:53Z</updated>
<author>
<name>Rafael J. Wysocki</name>
</author>
<published>2014-07-22T23:00:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f35cec255557d1037ff0d772edfd6e7b1e92cdc0'/>
<id>urn:sha1:f35cec255557d1037ff0d772edfd6e7b1e92cdc0</id>
<content type='text'>
Wakeup GPEs are currently only enabled when setting up devices for
remote wakeup at run time.  During system-wide transitions they are
enabled by ACPICA at the very last stage of suspend (before asking
the BIOS to take over).  Of course, that only works for system
sleep states supported by ACPI, so in particular it doesn't work
for the "freeze" sleep state.

For this reason, modify the ACPI core device PM code to enable wakeup
GPEs for devices when setting them up for wakeup regardless of whether
that is remote wakeup at runtime or system wakeup.  That allows the
same device wakeup setup routine to be used for both runtime PM and
system-wide PM and makes it possible to reduce code size quite a bit.

This make ACPI-based PCI Wake-on-LAN work with the "freeze" sleep
state on my venerable Toshiba Portege R500 and should help other
systems too.

Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</content>
</entry>
<entry>
<title>ACPI / PM: Revork the handling of ACPI device wakeup notifications</title>
<updated>2014-07-22T23:00:45Z</updated>
<author>
<name>Rafael J. Wysocki</name>
</author>
<published>2014-07-22T23:00:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c072530f391e33bd22ed0638c08f07528f154493'/>
<id>urn:sha1:c072530f391e33bd22ed0638c08f07528f154493</id>
<content type='text'>
Since ACPI wakeup GPEs are going to be enabled during system suspend
as well as for runtime wakeup by a subsequent patch and the same
notify handlers will be used in both cases, rework the ACPI device
wakeup notification framework so that the part specific to physical
devices is always run asynchronously from the PM workqueue.  This
prevents runtime resume callbacks for those devices from being
run during system suspend and resume which may not be appropriate,
among other things.

Also make ACPI device wakeup notification handling a bit more robust
agaist subsequent removal of ACPI device objects, whould that ever
happen, and create a wakeup source object for each ACPI device
configured for wakeup so that wakeup notifications for those
devices can wake up the system from the "freeze" sleep state.

Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</content>
</entry>
<entry>
<title>ACPI / PM: Export rest of the subsys PM callbacks</title>
<updated>2014-05-20T11:23:07Z</updated>
<author>
<name>Heikki Krogerus</name>
</author>
<published>2014-05-15T13:40:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4cf563c5d97c83d4b2fb3a778dd7d5e362cc3e34'/>
<id>urn:sha1:4cf563c5d97c83d4b2fb3a778dd7d5e362cc3e34</id>
<content type='text'>
No reason for excluding the remaining ones.

Signed-off-by: Heikki Krogerus &lt;heikki.krogerus@linux.intel.com&gt;
[rjw: Rebased and exported the new acpi_subsys_complete() too.]
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</content>
</entry>
<entry>
<title>ACPI / PM: Avoid resuming devices in ACPI PM domain during system suspend</title>
<updated>2014-05-20T11:22:48Z</updated>
<author>
<name>Rafael J. Wysocki</name>
</author>
<published>2014-05-16T22:18:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f25c0ae2b4c41996c1a6b609132c1788a6eea080'/>
<id>urn:sha1:f25c0ae2b4c41996c1a6b609132c1788a6eea080</id>
<content type='text'>
Rework the ACPI PM domain's PM callbacks to avoid resuming devices
during system suspend (in order to modify their wakeup settings etc.)
if that isn't necessary.

Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</content>
</entry>
<entry>
<title>ACPI / PM: Resume runtime-suspended devices later during system suspend</title>
<updated>2014-03-03T23:17:48Z</updated>
<author>
<name>Rafael J. Wysocki</name>
</author>
<published>2014-02-26T00:00:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=92858c476ec4e99cf0425f05dee109b6a55eb6f8'/>
<id>urn:sha1:92858c476ec4e99cf0425f05dee109b6a55eb6f8</id>
<content type='text'>
Runtime-suspended devices are resumed during system suspend by
acpi_subsys_prepare() for two reasons: First, because they may need
to be reprogrammed in order to change their wakeup settings and,
second, because they may need to be operatonal for their children
to be successfully suspended.  That is a problem, though, if there
are many runtime-suspended devices that need to be resumed this
way during system suspend, because the .prepare() PM callbacks of
devices are executed sequentially and the times taken by them
accumulate, which may increase the total system suspend time quite
a bit.

For this reason, move the resume of runtime-suspended devices up
to the next phase of device suspend (during system suspend), except
for the ones that have power.ignore_children set.  The exception is
made, because the devices with power.ignore_children set may still
be necessary for their children to be successfully suspended (during
system suspend) and they won't be resumed automatically as a result
of the runtime resume of their children.

Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</content>
</entry>
<entry>
<title>Merge branches 'acpi-processor', 'acpi-hotplug', 'acpi-init', 'acpi-pm' and 'acpica'</title>
<updated>2014-01-29T10:47:18Z</updated>
<author>
<name>Rafael J. Wysocki</name>
</author>
<published>2014-01-29T10:47:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=82e180598b54873553fb1d285fb0c90fc54f8f23'/>
<id>urn:sha1:82e180598b54873553fb1d285fb0c90fc54f8f23</id>
<content type='text'>
* acpi-processor:
  ACPI / scan: reduce log level of "ACPI: \_PR_.CPU4: failed to get CPU APIC ID"
  ACPI / processor: Return specific error value when mapping lapic id

* acpi-hotplug:
  ACPI / scan: Clear match_driver flag in acpi_bus_trim()

* acpi-init:
  ACPI / init: Flag use of ACPI and ACPI idioms for power supplies to regulator API

* acpi-pm:
  ACPI / PM: Use ACPI_COMPANION() to get ACPI companions of devices

* acpica:
  ACPICA: Remove bool usage from ACPICA.
</content>
</entry>
<entry>
<title>ACPI / PM: Use ACPI_COMPANION() to get ACPI companions of devices</title>
<updated>2014-01-27T22:10:24Z</updated>
<author>
<name>Rafael J. Wysocki</name>
</author>
<published>2014-01-27T22:10:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=79c0373f3e847309f4f33d23f2bf088ee3b1ac34'/>
<id>urn:sha1:79c0373f3e847309f4f33d23f2bf088ee3b1ac34</id>
<content type='text'>
The ACPI device PM code in device_pm.c uses a special function,
acpi_dev_pm_get_node(), to obtain an ACPI companion object of a given
device.  However, that is not necessary any more after recent changes
that introduced the ACPI_COMPANION() macro serving exactly the same
purpose, but working in a much more straightforward way.  For this
reason, drop acpi_dev_pm_get_node() and use ACPI_COMPANION() instead
of it everywhere.

Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
Reviewed-by: Mika Westerberg &lt;mika.westerberg@linux.intel.com&gt;
</content>
</entry>
</feed>
